Ukončení SSL a ASP.NET

Překlady článku Překlady článku
ID článku: 910444 - Produkty, které se vztahují k tomuto článku.
Podpora ASP.NET Voice sloupce

Ukončení SSL a ASP.NET

Přizpůsobit tento sloupec vašim potřebám chceme pozvat odeslat nápadů o tématech, které vás zajímají, a problémy, které chcete zobrazit adresovány v budoucnu články databáze Knowledge Base a podpora Voice sloupců. Můžete odeslat nápady a názor pomocí formuláře Ask For It. Také je odkaz na formulář v dolní části sloupce.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Vítá vás sloupec ASP.NET podpory Voice! Mé jméno je Jerry Orman. I byly s aplikací Microsoft přes pět let a většina Moje zaměřený na související webových technologií, jako například Microsoft FrontPage a SharePoint produktů a technologií Microsoft času stráveného. Jsem jste strávili poslední rok práci s Microsoft ASP.NET jako pracovníka podpory. Tento měsíc I dochází přechod hovořit o ukončení SSL a ASP.NET. V určitých chcete zaměřit na problémy, které jsou výsledkem konfigurace serveru. Kterou jsme hodláte prohlédnout ukončení SSL a některé vedlejší účinky této konfigurace na aplikace.

Ukončení SSL je konfigurace, které webový server se službou kódu odesílá a přijímá přenosy přes protokol HTTP a je zařízení mezi serveru WWW a klienty, které šifruje a dešifruje data. V této konfiguraci klientů odesílání a přijímání přenosů HTTPS. Konfigurace SSL ukončení je podobná následující:
Klient < – HTTPS – > SSL zařízení < – HTTP – > serveru
Nyní let's přejděte přes dva problémy, které pocházejí v Microsoft ASP.NET 2.0 této konfigurace a některé způsoby chování obejít.

Problém 1

Ukazatel myši nad položku nabídky v ovládacím prvku ASP.NET 2.0 Nabídka, obdržíte následující chybová zpráva:
Tato stránka obsahuje zabezpečené i nezabezpečené položky. Chcete zobrazit nezabezpečené položky?
Aplikace by měl být zabezpečit, používáte protokol SSL a není přidali jakékoli ovládací prvky jsou vykreslování absolutní cestu k HTTP adresu. Co je s tuto zprávu?

Dobře problém je ovládací prvek nabídky vydává signál některé JavaScript, který používá objekt iFrame k sestavení rozevírací nabídce. Máte poskytnout rámec počáteční URL. Vyvarujte zbytečné výlet round server-SSL scénáře, skript používá o: prázdné pro adresu. Však prohlížeče tuto změnu považuje nezabezpečené adresu tak získat výše uvedené chyby. Další informace o tomto problému hlediska služby Microsoft Windows SharePoint Services klepněte na následující číslo článku databáze Microsoft Knowledge Base:
837850Klepněte na možnost zobrazení Průzkumníka knihovny dokumentů v službou SharePoint nebo SharePoint Team Services se zobrazí zpráva "Tato stránka obsahuje zabezpečené i nezabezpečené položky"
Protože pokud server WWW byl příjem přenosů HTTPS namísto zařízení SSL, JavaScript vydává signál ovládací prvek nabídky by přidat řádek kódu na serveru nastavit zdroj objektu iFrame adresa HTTPS stránky lze explicitně o scénáře SSL. Inicializuje jiný požadavek, ale zabrání chybová zpráva Nejste zavádění do tohoto typu prostředí, můžete vynutit sčítání JavaScript zabránit chybová zpráva přidáním tento kód stránky obsahující ovládací prvek nabídky.
 <script runat="server">
   protected override void Render(HtmlTextWriter writer) 
   {
        Page.ClientScript.RegisterStartupScript(typeof(Page), "MenuHttpsWorkaround", 
        Menu1.ClientID + "_Data.iframeUrl='https://myserver/someblankpage.htm';", true);
        base.Render(writer);
   }
</script>
 
Optimálním případě by jste nabídce ve třídě MasterPage nebo třídě UserControl a může přidat tento kód pouze jednou.

Problém 2

Pravděpodobně zjistíte, když máte requireSSL atribut <forms> prvek nastavena na hodnotu true, server odpoví opakované přesměruje na přihlašovací stránku FormsAuthentication. Příčinou je změna ve způsobu, jakým metoda FormsAuthenticationModule zpracovává atribut requireSSL. Pokud atribut requireSSL nastavena na hodnotu true, metoda FormsAuthenticationModule vytvoří soubor cookie, který má nastaven atribut zabezpečení. (Toto chování je stejné jako v rozhraní .NET Framework 1.1.) Při použití zabezpečené atribut klienta pouze předá soubor cookie serveru Pokud klienta pomocí SSL. Tato část je skvělé, protože klient je ve skutečnosti pomocí SSL. Předpokládejme mít stránka SecurePage.aspx, nelze získat přístup anonymní uživatelé. Pomocí protokolu SSL a atribut requireSSL ukončíte s následující provoz na počáteční požadavek na SecurePage.aspx:
– > Klient vytvoří požadavek GET SecurePage.aspx.

<– Server odpoví HTTP 302 (přesměrování) na přihlašovací stránku.

– > Klient vytvoří požadavek GET Login.aspx.

<– Odpoví server 200 OK. Přihlašovací stránce je vykreslen pro klienta.

– > Klient vytvoří požadavek POST Login.aspx.

<– Server odpoví 302 (přesměrování) k SecurePage.aspx. Záhlaví cookie nastavit odeslána sAtribut zabezpečení klientovi.

– > Klient vytvoří požadavek GET SecurePage.aspx. Soubor cookie je předán, protože klienta pomocí SSL.

<– Server odpoví 302 (přesměrování) zpět na přihlašovací stránku.

Přesměrování v poslední požadavku získat z důvodu změny ve třídě FormsAuthenticationModule. Byla přidána další políčko v ASP.NET 2.0 k určení, zda je uživatel předávání zabezpečený soubor cookie přes požadavek SSL. ASP.NET 2.0 vrátí FormsAuthenticationTicket třídy, pokud vlastnost FormsAuthentication.RequireSSL nastavena na hodnotu false nebo pokud je atribut Request.IsSecure nastavena na hodnotu true.
  • Pokud atribut requireSSL nastavena na hodnotu false v konfiguračním souboru vlastnost FormsAuthentication.RequireSSL nastavena na hodnotu false.
  • Atribut Request.IsSecure je nastavena na hodnotu true, pokud server WWW přijme provoz SSL.
Protože v tomto scénáři webový server nepřijímá provoz SSL a atribut requireSSL nastavena na hodnotu true, oba kontroly return false. V důsledku toho není vrácena FormsAuthenticationTicket třídy a odebrán z kolekce Request.Cookies soubor cookie.

Požadavek uživatele provádění je anonymní v tomto okamžiku protože server ještě nebyl ověřen pověření uživatele. Při požadavku průchodu potrubí ASP.NET, třída UrlAuthorizationModule zkontroluje, zda má uživatel přístup ke stránce. Protože anonymní uživatel nemá přístup ke stránce SecurePage.aspx, vrátí třída UrlAuthorizationModule 401 chybová zpráva („ přístup odepřen"), výsledkem je přesměrování na přihlašovací stránku.

Chcete-li se vyhnout tomuto chování, nejprve máte odebrat atribut requireSSL z <forms> značku v konfiguračním souboru. Poté máte programově nastavit atribut zabezpečení na FormsAuthentication souboru cookie. Následující kód to, pro soubor cookie FormsAuthentication a soubor cookie relace.
void Application_EndRequest(object sender, EventArgs e)
{
     if (Response.Cookies.Count > 0)
     {
          foreach (string s in Response.Cookies.AllKeys)
          {
               if (s == FormsAuthentication.FormsCookieName || s.ToLower() == "asp.net_sessionid")
               {
                    Response.Cookies[s].Secure = true;
               }
          }
     }
}

Odkazy

Další informace o řízení Nabídka na webu Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/2xt3t8a7(vs.80).aspx
Další informace o atributu requireSSL vlastnost FormsAuthentication.RequireSSL na webu služby MSDN:
http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication.requiressl.aspx
Další informace o atributu IsSecure vlastnost HttpRequest.IsSecureConnection na webu služby MSDN:
http://msdn2.microsoft.com/en-us/library/system.web.httprequest.issecureconnection(vs.71).aspx
Další informace o třídě FormsAuthenticationModule na webu služby MSDN:
http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationmodule.aspx
Další informace o třídě UrlAuthorizationModule na webu služby MSDN:
http://msdn2.microsoft.com/en-us/library/system.web.security.urlauthorizationmodule.aspx


Doufám, že zjistíte tyto informace užitečné při používáte ukončení SSL a Microsoft ASP.NET. Nezapomeňte, že podpora Voice sloupce jsou pro vás! Jako vždy pocit volného odeslat nápady na témata, která chcete v budoucnu adresovány sloupce nebo pomocí formuláře Ask For It znalostí.

Vlastnosti

ID článku: 910444 - Poslední aktualizace: 22. listopadu 2007 - Revize: 1.3
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft ASP.NET 2.0
Klíčová slova: 
kbmt kbhowto kbasp KB910444 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:910444
Právní omezení pro obsah znalostní báze týkající se produktů, jejichž podpora byla ukončena
Tento článek byl napsán o produktech, pro které společnost Microsoft již neposkytuje nadále podporu. Článek je tedy nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com