Gewusst wie eine ASP.NET-Anwendung Sichern von mit Windows-Sicherheit

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 315736 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

ASP.NET kann zusammen mit Microsoft Internetinformationsdienste (IIS) verwendet werden, um Webbenutzer basierend auf Ihren Microsoft Windows 2000 oder Windows Server 2003-Anmeldeinformationen zu authentifizieren. Das ASP.NET-Modul Ausführung kann auch konfiguriert werden, um Benutzer zu imitieren oder eine eigenen Windows-Identität verwenden, beim Zugriff auf Ressourcen wie Datenbanken oder Dateien.


Voraussetzungen

Sie benötigen die folgende Hardware, Software und Netzwerkinfrastruktur, um die in diesem Artikel beschriebenen Verfahren:
  • Windows 2000 Server Service Pack 2
  • IIS 5.0
  • Windows Server 2003 mit IIS 6.0
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual Studio .NET
Außerdem benötigen Sie Erfahrung mit den folgenden:
  • ASP.NET-Entwicklung mit Visual Basic .NET
  • IIS-Verwaltung
  • Windows 2000-Benutzer-Kontenverwaltung

So entwickeln Sie die Website

In diesem Verfahren erstellen Sie eine einfache ASP.NET-Webseite Anwendung, die mithilfe der Windows-Authentifizierung gesichert wird.
  1. Starten Sie Visual Studio .NET, und erstellen Sie eine neue Visual Basic ASP.NET Web-Anwendung mit dem Namen "WindowsSite".
  2. Ziehen Sie ein Bezeichnungsfeld-Steuerelement aus der Toolbox auf das Webformular WebForm1.aspx, und setzen Sie dessen Eigenschaft ID auf AuthUserPrincipalLabel .
  3. Ziehen Sie ein zweites Bezeichnungsfeld-Steuerelement aus der Toolbox auf das Webformular WebForm1.aspx, und setzen Sie dessen Eigenschaft ID auf AspPrincipalLabel .
  4. Doppelklicken Sie auf WebForm1.aspx , um das Codefenster anzuzeigen, und fügen Sie oberhalb der Klassendeklaration folgende Imports -Anweisung hinzu:
    Imports System.Security
    						
    zu der Ereignisprozedur Page_Load den folgenden Code hinzufügen:
    Dim authUserName As String
    Dim aspUserName As String
    authUserName = User.Identity.Name
    aspUserName = Principal.WindowsIdentity.GetCurrent.Name
    authUserPrincipalLabel.Text = "You are: " & authUserName
    aspPrincipalLabel.Text = "This page runs as: " & aspUserName
    					
  5. Zeigen Sie Web.config-Datei des Projekts, und suchen Sie authentication. Prüfen Sie, ob das Mode-Attribut einen Wert von Windows verfügt.
  6. Erstellen Sie und speichern Sie das Projekt.
  7. Führen Sie das Projekt, und bestätigen Sie, dass die Seite mit der folgenden Meldung angezeigt wird:
    • In Windows 2000
      Sie sind:
      Diese Seite wird als ausgeführt: \ASPNET DomainOrServer
    • In Windows Server 2003
      Sie sind:
      Diese Seite wird als ausgeführt: DomainOrServer \NETWORK SERVICE
    Hinweis: Ihr Benutzername wird nicht angezeigt, da Sie nicht von IIS authentifiziert wurden; die anonymer Zugriff ist weiterhin aktiviert.
  8. Beenden Sie Internet Explorer um das Projekt zu beenden.

Deaktivieren der anonymen Zugriff

In diesem Verfahren konfigurieren Sie IIS für die integrierte Windows-Authentifizierung für die Website WindowsSite erforderlich ist.
  1. Minimieren Sie Visual Studio und starten Sie IIS-Manager aus der Programmgruppe Verwaltung.
  2. Erweitern Sie Ihren Server und die Standardwebsite, klicken Sie mit der rechten Maustaste auf die WindowsSite -Website und klicken Sie dann auf Eigenschaften .
  3. Klicken Sie auf die Registerkarte Verzeichnissicherheit im Dialogfeld WindowsSite Eigenschaften auf die Schaltfläche Bearbeiten im Abschnitt "Steuerung des anonymen Zugriffs und Authentifizierung".
  4. Klicken Sie, um deaktivieren Sie das Kontrollkästchen Anonymer Zugriff , überprüfen Sie, dass das Kontrollkästchen integrierte Windows-Authentifizierung aktiviert ist, und klicken Sie dann auf OK .
  5. Klicken Sie auf OK , um das Dialogfeld Eigenschaften von WindowsSite zu schließen.
  6. Wechseln Sie zurück zu Visual Studio, und führen Sie das Projekt. Bestätigen Sie, dass die Seite mit der folgenden Meldung angezeigt wird:
    • In Windows 2000
      Sie sind: Your Windows user name
      Diese Seite wird als ausgeführt: \ASPNET DomainOrServer
    • In Windows Server 2003
      Sie sind: Your Windows user name
      Diese Seite wird als ausgeführt: DomainOrServer \NETWORK SERVICE
    Hinweis: Sie verfügen über Ihr Windows-Konto authentifiziert wurde. Wenn Sie nicht an Windows angemeldet wurde hatte, Sie dazu würde aufgefordert wurden für ein Windows-Benutzernamen und Kennwort.
  7. Beenden Sie Internet Explorer um das Projekt zu beenden.

Authorisierung

In ASP.NET ist es möglich, Autorisierung, um die Anwendung zulassen, wenn Sie zusätzliche Einstellungen innerhalb der Datei Web.config verfügbar machen Datei. Sie können bestimmte Benutzer oder bestimmten Gruppen Zugriff auf diese zusätzlichen Einstellungen. Die folgenden Beispiele beschreiben diese Funktion. Verwenden Sie damit Zugriff auf alle Benutzer in der Windows NT-Gruppe, die "Manager" aufgerufen wird, gefunden, den folgenden Code:
<configuration>
     <system.web>
       <authorization>
         <allow roles="domainname\Managers" />
         <deny users="*" />
       </authorization>
     </system.web>
   </configuration>
				
um nur bestimmten Benutzern Zugriff, verwenden Sie den folgenden Code:
<configuration>
     <system.web>
       <authorization>
         <allow users="domainname\user1,domainname\user2,domainname\user3" />
         <deny users="*" />
       </authorization>
     </system.web>
   </configuration>
				
Beachten Sie mehrere Rollen oder Benutzer verweisen können, wenn Sie eine durch Kommas getrennte Liste verwenden.


Aktivieren des Identitätswechsels

In diesem Verfahren konfigurieren Sie die WindowsSite-Anwendung auf den Windows-Benutzer imitieren, der darauf zugreift.
  1. Zeigen Sie in Visual Studio die Web.config-Datei für das Projekt WindowsSite.
  2. Fügen Sie das folgende Element nach dem Element authentication:
    <identity impersonate = "true" />
    					
  3. Speichern Sie Web.config.
  4. Führen Sie das Projekt aus. Bestätigen Sie, dass die Seite die folgende Meldung (Hinweis) angezeigt wird, dass das Ausführungsmodul ASP.NET für Ressourcen in Ihrem Auftrag Zugriff auf Ihre Windows-Anmeldeinformationen verwenden sollen:
    Sie sind: Your Windows user name
    Diese Seite wird als ausgeführt: Your Windows user name
  5. Beenden Sie Internet Explorer um das Projekt zu beenden.

Verfahren zum Zuweisen eines benutzerdefinierten Principal

In diesem Verfahren werden Sie die WindowsSite-Anwendung mit einen benutzerdefinierten Sicherheitsprinzipal konfigurieren:
  1. Starten Sie das Computer Management-Feature von der Programmgruppe Verwaltung. Erstellen Sie ein neues Windows 2000-Benutzerkonto mit dem Namen "WindowsSite", mit dem Kennwort "Password" (Beachten Sie, ob Ihr Server ein Domänencontroller ist und dann das Tool Active Directory-Benutzer und-Computer verwenden).
  2. Der Benutzer muss Kennwort bei der nächsten Anmeldung ändern das Kontrollkästchen. Hinweis der benutzerdefinierte Prinzipal deaktivieren, die Sie benötigen die Berechtigungen, die in den folgenden Knowledge Base beschrieben werden:
    317012INFO: Prozess- und Anforderungsidentität in ASP.NET
  3. Wenn das WindowsSite-Konto erstellt wurde, schließen Sie das Verwaltungstool, mit der es erstellt.
  4. Zeigen Sie in Visual Studio die Web.config-Datei für das Projekt WindowsSite.
  5. Bearbeiten Sie das Element identity wie folgt lauten:
    identity impersonate = "true"
           userName = "DomainOrServerName\WindowsSite"
           password = "password"/>
    
    wobei DomainOrServerName entweder der Name von Ihrem Windows 2000 oder Windows Server 2003-Domäne (in einer Domänenumgebung) oder des Computers (in einer Arbeitsgruppenumgebung) ist.
  6. Speichern Sie Web.config.
  7. Führen Sie das Projekt aus. Bestätigen Sie, dass die Seite mit der folgenden Meldung angezeigt wird:
    Sie sind: Your Windows user name
    Diese Seite wird als ausgeführt: DomainOrServerName \WindowsSite
    Hinweis: Aspnet_wp.exe wird die Windows-Anmeldeinformationen verwendet, die Sie Zugriff auf Ressourcen Ihrem Auftrag angegeben.
  8. Beenden Sie Internet Explorer um das Projekt zu beenden.
Hinweis: Die Identität des Prozesses, der einen bestimmten Benutzer in einem Thread imitiert muss über die Berechtigung einsetzen als Teil des Betriebssystems verfügen.
  • Unter Windows 2000 ausgeführt wird standardmäßig der Aspnet_wp.exe-Prozess unter einem Computerkonto mit dem Namen ASPNET.
  • Wird auf Windows Server 2003 standardmäßig ausgeführt, der Aspnet_wp.exe-Prozess unter einem Computerkonto mit dem Namen Netzwerkdienst. Dieses Konto jedoch nicht die richtigen Berechtigungen zum Imitieren eines bestimmten Benutzers verfügen. Wenn Sie versuchen, einen bestimmten Benutzer zu imitieren, wird Ihnen also eine Fehlermeldung angezeigt.
Verwenden Sie eine der folgenden Methoden um dieses Problem zu umgehen:
  • Erteilen Sie der einsetzen als Teil des Betriebssystems Berechtigung für das ASPNET-Konto (das Konto mit minimalen Berechtigungen).

    Hinweis: Obwohl Sie diese Methode verwenden können, um das Problem zu umgehen, empfiehlt Microsoft, diese Methode nicht.
  • Ändern des Kontos, der der Aspnet_wp.exe-Prozess unter dem Systemkonto im <processmodel> Konfigurationsabschnitt der Datei Machine.config ausgeführt wird.
Weitere Informationen zu dem ASPNET-Prozess die folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn2.microsoft.com/en-us/library/aa291339(VS.71).aspx

Problembehandlung

Windows-Sicherheit in einer ASP.NET-Website kann weiter verbessert (kompliziert und werden) mithilfe von NTFS-Datei Berechtigungen. Wenn Ihr Windows-Konto nicht zum Lesen einer Seite ASP.NET Web Berechtigungen verfügt, fordert IIS Sie alternative Anmeldeinformationen für die Windows. Ebenso eine ASP.NET-Seite versucht, eine Datei zuzugreifen, der die Sicherheitsprinzipal, verwendet das ASP.NET-Modul Ausführung hat keinen Zugriff auf, werden Sie für alternative Anmeldeinformationen aufgefordert. NTFS Berechtigungen sind eine effektive Möglichkeit, Zugriff auf Abschnitte einer Website zu steuern.

Informationsquellen

Weitere Informationen zur Verwendung von Windows-Authentifizierung in einer ASP.NET-Website finden Sie unter Thema ASP.NET-Anwendung "Sicherheit" in der .NET Framework-Dokumentation.

Außerdem finden Sie Artikel "Authentifizierung in ASP.NET: .NET Security Guidance" auf der folgenden MSDN-Website:
http://msdn2.microsoft.com/en-us/library/ms978378.aspx

Eigenschaften

Artikel-ID: 315736 - Geändert am: Montag, 3. Dezember 2007 - Version: 3.11
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ASP.NET 1.0
  • Microsoft Internet Information Services 5.0
  • Microsoft ASP.NET 1.1
  • Microsoft Internet Information Services 6.0
Keywords: 
kbmt kbconfig kbhowtomaster kbinfo kbsecurity kbweb KB315736 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: 315736
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