INFO: ASP.NET-Sicherheit (Übersicht)

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 306590 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde zuvor veröffentlicht unter D306590
Dieser Artikel bezieht sich auf der folgenden Microsoft. Namespaces für Framework-Klassenbibliothek:
  • System.Web.Security
  • System.Web.Principal
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel enthält eine Einführung in ASP.NET Sicherheit.

Zusätzliche ASP.NET Übersichten finden Sie in der folgenden Artikel der Microsoft Knowledge Base:
305140 INFO: ASP.NET-Roadmap

Weitere Informationen

ASP.NET gibt Ihnen mehr Kontrolle zum Implementieren der Sicherheit für die Anwendung. ASP.NET-Sicherheit arbeitet in Verbindung mit Microsoft-Internetinformationsdienste (IIS)-Sicherheit und umfasst Authentifizierungs- und Autorisierung an Implementieren des ASP.NET-Sicherheitsmodells. ASP.NET enthält außerdem eine rollenbasierte Sicherheitsfunktion, die sowohl für Microsoft Windows implementiert werden können und nicht-Windows-Benutzerkonten.

Dieser Artikel ist in der folgenden unterteilt. Abschnitte:

Abfolge der Sicherheitsmaßnahmen bei einer Anforderung

Die folgenden Schritte beschreiben die Abfolge der Ereignisse, wenn ein client Stellt eine Anfrage an:
  1. Ein Client fordert eine ASPX-Seite, die auf einem IIS befindet Server.
  2. Die Anmeldeinformationen des Clients werden an IIS übergeben.
  3. IIS authentifiziert den Client und leitet den authentifizierten Token zusammen mit dem Client-Anforderung an den Workerprozess ASP.NET.
  4. Basierend auf den authentifizierten Token von IIS und die Konfigurationseinstellungen für die Webanwendung, ASP.NET entscheidet, ob imitieren Sie einen Benutzer auf den Thread, der die Anforderung verarbeitet. In eine eigene Unterschied zwischen Microsoft Active Server Pages (ASP) und ASP.NET, ASP.NET keine mehr nimmt die Identität des authentifizierten Benutzers in der Standardeinstellung. Zum Aktivieren des Identitätswechsels Sie müssen das Attribut impersonate der Identity-Abschnitt in der Datei Web.config auf truefestlegen.
Weitere Informationen zum Ablauf von Sicherheitsereignissen finden Sie in der folgenden Thema in der.NET Framework Software Development Kit (SDK) Dokumentation:
ASP.NET-Datenfluss
http://msdn.Microsoft.com/en-us/library/xa68twcb (werden) aspx
Weitere Informationen zu Identitätswechsel in ASP.NET, klicken Sie auf die nachstehende Artikelnummer klicken, um den Artikel in anzeigen der Microsoft Knowledge Base:
306158 INFO: Implementierung des Identitätswechsels in einer Anwendung ASP.NET

Verwandte Konfigurationseinstellungen

IIS speichert sicherheitsrelevante Konfigurationseinstellungen in IIS die Metabasis. ASP.NET behält jedoch Sicherheit (und andere) Konfiguration Einstellungen in Konfigurationsdateien (XML = Extensible Markup Language). Obwohl dies im Allgemeinen vereinfacht die Bereitstellung der Anwendung von Sicherheit Sicht, das, die Ihrer Anwendung verwendete Sicherheitsmodell erfordert die korrekte Konfiguration der IIS-Metabasis und Ihrer Anwendung ASP.NET über deren Konfigurationsdatei (Web.config).

Die folgenden Konfigurationsabschnitte beziehen sich auf ASP.NET Sicherheit:

Authentifizierung

Authentifizierung ist der Prozess, indem Sie, den Kennung zu erhalten Anmeldeinformationen wie Name und Kennwort des Benutzers ein, und diese Anmeldeinformationen überprüfen über eine Authentifizierungsstelle.

ASP.NET bietet vier Authentifizierung Anbieter:

Formularauthentifizierung

Formularauthentifizierung bezieht sich auf einem System in dem nicht authentifizierte Benutzer Anforderungen werden zu einem Formular (HTML = Hypertext Markup Language), in dem umgeleitet werden. Benutzer geben Sie ihre Anmeldeinformationen. Nachdem der Benutzer stellt Anmeldeinformationen bereit und sendet das Formular die Anwendung authentifiziert die Anforderung und die Systemprobleme ein Authentifizierungsticket in Form eines Cookies. Dieses Cookie enthält die Anmeldeinformationen oder eine Taste, um die Identität erneut anzufordern. Nachfolgende Anforderungen aus der Browser automatisch das Cookie hinzugefügt werden.

Weitere Informationen zu Formularauthentifizierung finden Sie in dem folgenden Thema in der.NET Framework-SDK Dokumentation:
Der Formularauthentifizierungsprovider
http://msdn.Microsoft.com/en-us/library/907hb5w9 (werden) aspx
Für Weitere Informationen zur Formularauthentifizierung in ASP.NET, klicken Sie auf den Artikel Anzahl unten auf der Microsoft Knowledge Base:
301240 Gewusst wie: Implementieren Sie formularbasierte Authentifizierung in Ihrer Anwendung ASP.NET mit C#.

Windows-Authentifizierung

In Windows-Authentifizierung IIS führt die Authentifizierung und der authentifizierte Token wird an den Workerprozess ASP.NET. Der Vorteil der Verwendung von Windows Authentifizierung ist, dass es nur ein minimaler Codierungsaufwand erforderlich ist. Sie möchten Windows verwenden das Windows-Benutzerkonto zu imitieren, das authentifiziert der IIS-Authentifizierung Bevor Sie übergeben Sie die Anforderung an ASP.NET.

Weitere Informationen Informationen zur Windows-Authentifizierung finden Sie unter dem folgenden Thema in der .net SDK-Dokumentation:
Der WindowsAuthenticationModule-Anbieter
http://msdn.Microsoft.com/en-us/library/907hb5w9 (werden) aspx

Passport-Authentifizierung

Passport-Authentifizierung ist ein zentralisierter Authentifizierungsdienst, die von Microsoft bereitgestellt, die auf eine einzige Anmeldung bietet, und Kernprofildienste für Mitgliedssites. Passport-Authentifizierung wird i. d. r. verwendet, wenn Sie benötigen die Einzelanmeldung Funktionalität über mehrere Domänen hinweg.

Weitere Informationen Informationen zu Passport-Authentifizierung finden Sie in dem folgenden Thema in der .NET Framework-SDK-Dokumentation:
Die Passport-Authentifizierungsanbieter
http://msdn.Microsoft.com/en-us/library/f8e50t0f (werden) aspx

Standard-Authentifizierung

Standard-Authentifizierung wird verwendet, wenn Sie nicht, dass keine Sicherheit möchten in der Webanwendung; Anonymer Zugriff ist für dieses Sicherheitsupdate erforderlich Anbieter. Von allen Authentifizierungsanbietern bietet Standard-Authentifizierung maximale Leistung für Ihre Anwendung. Dieser Authentifizierungsanbieter ist auch verwendet, wenn Sie Ihre eigenen benutzerdefinierten Sicherheits-Modul verwenden.

Autorisierung

Autorisierung ist der Prozess, der überprüft, wenn die authentifizierte Benutzer hat Zugriff auf die angeforderten Ressourcen.

ASP.NET bietet die folgenden Autorisierungsanbieter zur Verfügung:

FileAuthorization

FileAuthorizationModule -Klasse führt die Dateiautorisierung durch und ist aktiv, wenn Sie verwenden Windows-Authentifizierung. FileAuthorizationModule ist verantwortlich für die Überprüfungen der Windows-Zugriffssteuerung Zugriffssteuerungslisten (ACLs) um festzustellen, ob ein Benutzer Zugriff haben sollen.

UrlAuthorization

Die UrlAuthorizationModule -Klasse führt die Autorisierung (URL = Uniform Resource Locator), welche Steuerelemente die Autorisierung basierend auf den URI-Namespace. URI-Namespaces werden können Anders als den physischen Ordnern und Dateipfaden, NTFS-Berechtigungen Verwenden Sie.

UrlAuthorizationModule implementiert sowohl positive und negative Autorisierungsassertionen; Das heißt, können Sie das Modul gezielt zulassen oder Verweigern des Zugriffs auf beliebige Teile des URI-Namespace für Benutzer, Rollen (z. B. Manager, Tester und Administratoren), und Verben (z. B. GET und POST).

Für Weitere Informationen zur Autorisierung in ASP.NET, entnehmen Sie dem folgenden Thema in der.NET Framework-SDK-Dokumentation:
ASP.NET-Autorisierung
http://msdn.Microsoft.com/en-us/library/wce3kxhd (werden) aspx

Rollenbasierte Sicherheit

Rollenbasierte Sicherheit in ASP.NET ist ähnlich wie die Role-based Sicherheit, die Microsoft COM+ und Microsoft Transaction Server (MTS) verwenden, zwar es wichtige Unterschiede gibt. Rollenbasierte Sicherheit in ASP.NET ist nicht auf Windows-Konten und Gruppen beschränkt. Beispielsweise, wenn Windows-Authentifizierung und Identitätswechsel aktiviert ist, werden die Identität des Benutzers ist eine Windows-Identität (User.Identity.Name = "Domäne\Benutzername"). Sie können Identitäten für überprüfen. die Mitgliedschaft in bestimmten Rollen und den Zugriff entsprechend beschränken. Für Beispiel:

.NET-Code Visual Basic
If User.IsInRole("BUILTIN\Administrators") Then
   Response.Write("You are an Admin")
Else If User.IsInRole("BUILTIN\Users") then
   Response.Write("You are a User")
Else
   Response.Write("Invalid user")
End if
				
Visual C# .net Code
if ( User.IsInRole("BUILTIN\\Administrators"))
   Response.Write("You are an Admin");
else if (User.IsInRole("BUILTIN\\Users"))
   Response.Write("You are a User");
else
   Response.Write("Invalid user");
				
Wenn Sie die Formularauthentifizierung verwenden, sind keine Rollen zugewiesen die Authentifizierte Benutzer; Sie müssen dies programmatisch tun. Zuweisen von Rollen, die Authentifizierte Benutzer, das OnAuthenticate -Ereignis (Dies ist die Formulare verwenden Authentifizierungsmodul in diesem Beispiel), ein neues GenericPrincipal -Objekt erstellen und die User -Eigenschaft des HttpContext zuweisen. Der folgende Code veranschaulicht Dies:

.NET-Code Visual Basic
Public Sub Application_AuthenticateRequest(s As Object, e As EventArgs)
   If (Not(HttpContext.Current.User Is Nothing)) Then
      If HttpContext.Current.User.Identity.AuthenticationType = "Forms" Then
         Dim id as System.Web.Security.FormsIdentity = HttpContext.Current.User.Identity
         Dim myRoles(3) As String
         myRoles(0)= "managers"
         myRoles(1)= "testers"
         myRoles(2)= "developers"
         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles) 
      End If
   End If
End Sub
				
Visual C# .net Code
public void Application_AuthenticateRequest(Object s, EventArgs e)      
{
   if (HttpContext.Current.User != null)
   {
      if (HttpContext.Current.User.Identity.AuthenticationType == "Forms" ) 
      {
         System.Web.Security.FormsIdentity id = HttpContext.Current.User.Identity;
         String[] myRoles = new String[3];
         myRoles[0]= "managers";
         myRoles[1]= "testers";
         myRoles[2]= "developers";
         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles);
      }
   }
} 
				
Überprüfen Sie, ob der Benutzer in einer bestimmten Rolle ist und den Zugriff einschränken entsprechend den folgenden Code verwenden (oder ähnlich) in der ASPX-Seiten:

.NET-Code Visual Basic
If User.IsInRole("managers") Then
   Response.Write("You are a Manager")
Else If  User.IsInRole("testers") Then
   Response.Write("You are a Tester")
Else If User.IsInRole("developers") Then
   Response.Write("You are a Developer")
End if
				
Visual C# .net Code
if (User.IsInRole("managers"))
   Response.Write("You are a Manager");
else if (User.IsInRole("testers"))
   Response.Write("You are a Tester");
else if (User.IsInRole("developers"))
   Response.Write("You are a Developer");
				
Weitere Informationen finden Sie im Artikel Anzahl unten auf der Microsoft Knowledge Base:
306238 Gewusst wie: Implementieren Sie rollenbasierte Sicherheit mit formularbasierte Authentifizierung in der ASP.NET-Anwendung mithilfe von Visual Basic .net
Weitere Informationen zu rollenbasierter Sicherheit finden Sie unter mit dem folgenden Thema in der.NET Framework-SDK-Dokumentation:
Rollenbasierte Sicherheit
http://msdn.Microsoft.com/en-us/library/52kd59t0 (werden) aspx

Informationsquellen

Hinweise auf ASP.NET-Sicherheitsrichtlinien finden Sie in der folgende MSDN-Whitepaper:
Authentifizierung in ASP.NET: .net-Sicherheitsleitfaden
http://msdn.Microsoft.com/en-us/library/ms978378.aspx
Weitere allgemeine Informationen über ASP.NET finden Sie in der folgende MSDN-Newsgroup:
Microsoft.public.dotnet.Framework.Aspnet
Weitere Informationen finden Sie im Artikel Nummern unten zu die Artikeln der Microsoft Knowledge Base:
311094 Fehler: "ConfigurationException" Fehlermeldung, wenn die Identität angenommen Konten Konfiguration lesen
306359 PRB: Request.ServerVariables("REMOTE_ADDR") gibt eine leere Zeichenfolge in ASP.NET
313091 Gewusst wie: Erstellen von Schlüsseln für die Verwendung bei der Formularauthentifizierung mithilfe von Visual Basic .net
313116 PRB: Forms Authentication Requests werden nicht zu LoginUrl Seite geleitet.
Weitere Informationen finden Sie in folgenden Büchern:
Reilly, Douglas J. Entwerfen von Anwendungen mit Microsoft-ASP.NET. Microsoft Press, 2001.

Esposito, Dino.Building Web Solutions with ASP.NET und ADO.NET. Microsoft Press, 2001.

Eigenschaften

Artikel-ID: 306590 - Geändert am: Donnerstag, 28. Juni 2012 - Version: 1.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Keywords: 
kbproductlink kbarttyperoadmap kbconfig kbinfo kbsecurity kbweb kbmt KB306590 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 306590
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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