SSL-beëindiging en ASP.NET

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 910444 - Bekijk de producten waarop dit artikel van toepassing is.
ASP.Voice-kolom NET-ondersteuning

SSL-beëindiging en ASP.NET

Deze kolom aan uw behoeften aanpassen, willen we nodigen u uit om uw ideeën over onderwerpen die interessant zijn voor problemen die u wilt zien en behandeld in toekomstige Knowledge Base-artikelen en ondersteuning Voice kolommen. U kunt uw ideeën en feedback via indienen deVoor deze vraagformulier. Er is een koppeling naar het formulier onderaan deze kolom.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Welkom bij de ASP.De kolom NET ondersteuning stem! Mijn naam is Jerry van Opstal. Ik meer dan vijf jaar met Microsoft is en de meeste van mijn tijd gericht op Web-gerelateerde technologieën, zoals Microsoft FrontPage en Microsoft SharePoint-producten en technologieën hebben besteed. Ik heb het laatste jaar werken met Microsoft ASP uitgegeven.NET als een ondersteuningstechnicus Deze maand ga ik praten over SSL-beëindiging en ASP.NET. Ik wil met name richten op de problemen die uit de configuratie van de server voortvloeien. Gaan we bekijken op SSL-beëindiging en sommige neveneffecten van deze configuratie op uw toepassing.

SSL-beëindiging is een configuratie waarbij de webserver waarop uw code verzendt en ontvangt verkeer via HTTP en er is een apparaat tussen de webserver en clients die de gegevens gecodeerd en gedecodeerd. In deze configuratie worden de clients verzenden en ontvangen van HTTPS-verkeer. De configuratie van SSL-beëindiging is vergelijkbaar met het volgende:
Client <? https="" ?="">SSL apparaat <? http="" ?=""> webserver</?></?>
We gaan nu over twee problemen in Microsoft ASP verschijnen.NET 2.0 met deze configuratie en manieren om het probleem te omzeilen.

Probleem 1

Wanneer u op een menu-item in de ASP plaatst.NET 2.0Menubesturingselement u krijgt het volgende foutbericht weergegeven:
Deze pagina bevat zowel beveiligde en onbeveiligde items. Wilt u de onveilige items weergeven?
De toepassing moet worden beveiligd, gebruikt u het SSL-protocol en van een absoluut pad naar een HTTP samenstellen besturingselementen niet toegevoegd adres. Wat is dit bericht?

Het probleem is, dat deMenubesturingselement zendt radiofrequente sommige JavaScript gebruikt eeniFrameobject maken de vervolgmenu. U hebt het frame een URL geven. Voorkomen, maken een onnodige ronde voor scenario's niet-SSL-server gebruikt het scriptover: leegvoor de URL. Echter, de browser beschouwt dit een onbeveiligde adres, zodat u de bovenstaande fout krijgt.Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie over dit probleem in Microsoft Windows SharePoint Services:
837850Foutbericht 'deze pagina bevat zowel veilige als onveilige items' wanneer u de verkennerweergave in een documentbibliotheek in Windows SharePoint Services of SharePoint Team Services van Microsoft
Ik niet SSL scenario expliciet vermeld omdat, als de webserver het HTTPS-verkeer in plaats van de SSL-apparaat de JavaScript is ontvangen die deMenubesturingselement zendt radiofrequente toevoegen regel code instellen van de bron van deiFrameobject naar een HTTPS-adres van een pagina op de server. Deze aanvraag voor een andere, maar voorkomt dat de foutbericht. Als u in dit type omgeving, kunt u forceren toevoeging van JavaScript om te voorkomen dat het foutbericht door deze code toevoegen de pagina heeft deMenubesturingselement.
 <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>
 
Idealiter moet u het menu in eenMasterPageklasse of eenUserControlklasse, en kan deze code één tijd toevoegen.

Probleem 2

Is het mogelijk dat u derequireSSLkenmerk van de<forms></forms>element ingesteld opTrue, reageert de server met herhaalde omgeleid naar deFormsAuthenticationaanmeldingspagina. Dit wordt veroorzaakt door een wijziging in de manier waarop deFormsAuthenticationModulemethode verwerkt derequireSSLkenmerk. Als u Stel derequireSSLmet het kenmerkTrue, deFormsAuthenticationModulemethode maakt een cookie dat is debeveiligenkenmerk ingesteld. (Dit is hetzelfde als in de.NET Framework 1.1.) Wanneer u debeveiligenkenmerk, de client wordt alleen de cookie aan de server doorgeeft als de client met behulp van SSL. Dit gedeelte is groot, omdat de client inderdaad SSL. Eens dat u hebt een anonieme gebruikers geen toegang tot pagina SecurePage.aspx. Met het SSL-protocol en derequireSSLkenmerk u uiteindelijk met de volgende verkeer op eerste verzoek aan SecurePage.aspx:
? > Client maakt een GET-verzoek voor SecurePage.aspx.

<?server responds="" with="" an="" http="" 302="" (redirect)="" to="" the="" login="" page.=""></?server>

? > Client maakt een GET-verzoek voor Login.aspx.

<?server responds="" with="" a="" 200="" ok.="" the="" login="" page="" is="" rendered="" to=""></?server>

? > Client maakt een POST-aanvraag naar Login.aspx.

<?server responds="" with="" a="" 302="" (redirect)="" to="" securepage.aspx.="" set="" cookie="" header="" is="" sent="" with="" the=""></?server>beveiligenhet kenmerk dat naar de client.

? > Client maakt een GET-verzoek te SecurePage.aspx. Cookie doorgegeven omdat de client via SSL.

<?server responds="" with="" a="" 302="" (redirect)="" back="" to="" the="" login=""></?server>

U krijgt de omleiding in de laatste aanvraag vanwege een wijziging in deFormsAuthenticationModuleklasse. Een extra controle is toegevoegd in ASP.NET 2.0 bepalen of de gebruiker is een beveiligde cookie doorgeven via een niet-SSL-aanvraag. ASP.NET 2.0 geeft als resultaat deFormsAuthenticationTicketklasse als deFormsAuthentication.RequireSSLde eigenschap is ingesteld opFalseof als deRequest.IsSecurekenmerk is ingesteldTrue.
  • DeFormsAuthentication.RequireSSLde eigenschap is ingesteld opFalseAls derequireSSLkenmerk is ingesteldFalsein het configuratiebestand.
  • DeRequest.IsSecurekenmerk is ingesteldTrueAls de webserver SSL-verkeer ontvangt.
Omdat in dit scenario de webserver ontvangt geen SSL-verkeer en derequireSSLkenmerk is ingesteldTrue, beide controles retournerenFalse. Als gevolg daarvan deFormsAuthenticationTicketklasse niet geretourneerd en wordt de cookie verwijderd uit deRequest.cookiescollectie.

De gebruiker is het verzoek is op dit moment anonieme omdat de server heeft referenties van de gebruiker nog niet gevalideerd. Als de aanvraag het ASP passeert.NETTO pijpleiding deUrlAuthorizationModuleklasse controleert of de gebruiker toegang tot heeft de pagina. Aangezien anonieme gebruiker toegang tot een pagina SecurePage.aspx deUrlAuthorizationModuleklasse retourneert een 401-foutbericht ('toegang geweigerd'), waardoor een omleiden naar de aanmeldingspagina.

Om te voorkomen dat dit probleem, hebben u verwijderen van derequireSSLkenmerk van de<forms></forms>tag in de configuratie bestand. Hebt u via programmering instellen debeveiligenkenmerk van deFormsAuthenticationcookie. De volgende code wordt voor u, voor zowel deFormsAuthenticationcookie en deSessiecookie.
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;
               }
          }
     }
}

Referenties

Voor meer informatie over deMenubeheren, gaat u naar de volgende website van Microsoft Developer Network (MSDN):
http://msdn2.Microsoft.com/en-us/library/2xt3t8a7 (vs.80) .aspx
Voor meer informatie over derequireSSLkenmerk van deFormsAuthentication.RequireSSLeigenschap, de volgende MSDN-website:
http://msdn2.Microsoft.com/en-us/library/System.Web.Security.formsauthentication.requiressl.aspx
Voor meer informatie over deIsSecurekenmerk van deHttpRequest.IsSecureConnectioneigenschap, de volgende MSDN-website:
http://msdn2.Microsoft.com/en-us/library/System.Web.HttpRequest.issecureconnection (vs.71) .aspx
Voor meer informatie over deFormsAuthenticationModuleklasse, de volgende MSDN-website:
http://msdn2.Microsoft.com/en-us/library/System.Web.Security.formsauthenticationmodule.aspx
Voor meer informatie over deUrlAuthorizationModuleklasse, de volgende MSDN-website:
http://msdn2.Microsoft.com/en-us/library/System.Web.Security.URLAuthorizationModule.aspx


Ik hoop dat u vindt deze informatie handig bij het gebruik van SSL-beëindiging en Microsoft ASP.NET. Onthoud dat kolommen Voice ondersteuning voor u! Zoals altijd gerust ideeën over onderwerpen die u wilt verzenden in toekomstige kolommen of in de Knowledge Base met deVoor deze vraagformulier.

Eigenschappen

Artikel ID: 910444 - Laatste beoordeling: donderdag 17 maart 2011 - Wijziging: 2.0
De informatie in dit artikel is van toepassing op:
  • Microsoft ASP.NET 2.0
Trefwoorden: 
kbhowto kbasp kbmt KB910444 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:910444
Vrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.

Geef ons feedback

 

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