Αναγν. άρθρου: 306590 - Τελευταία αναθεώρηση: Κυριακή, 29 Μαΐου 2011 - Αναθεώρηση: 4.0

ΠΛΗΡΟΦΟΡΙΕΣ: ASP.Επισκόπηση ΔΙΚΤΎΟΥ ασφαλείας

Συμβουλή συστήματοςΑυτό το άρθρο ισχύει για διαφορετικό λειτουργικό σύστημα από αυτό που χρησιμοποιείτε. Το περιεχόμενο του άρθρου που ενδέχεται να μην σας αφορά έχει απενεργοποιηθεί.
Αυτό το άρθρο αναφέρεται παρακάτω Microsoft.NET Χώροι ονομάτων βιβλιοθήκη κλάσεων Framework:
  • System.Web.Security
  • System.Web.Principal

Σε αυτήν τη σελίδα

Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

Αυτό το άρθρο παρέχει μια εισαγωγή στις ASP.NET ασφάλεια.

Για πρόσθετες ASP.NET επισκοπήσεις, ανατρέξτε στα ακόλουθα Άρθρο Γνωσιακής Βάσης της Microsoft:
305140  (http://support.microsoft.com/kb/305140/EN-US/ ) ΠΛΗΡΟΦΟΡΙΕΣ: ASP.Χάρτης Δικτύου

Περισσότερες πληροφορίες

ASP.NET σας προσφέρει περισσότερο έλεγχο για την εφαρμογή ασφαλείας για η εφαρμογή σας. ASP.Ασφάλεια ΔΙΚΤΎΟΥ λειτουργεί σε συνδυασμό με τις υπηρεσίες Microsoft Internet Information Services Ασφάλεια (IIS) και περιλαμβάνει υπηρεσίες ελέγχου ταυτότητας και εξουσιοδότησης εφαρμόζουν τις ASP.Το μοντέλο ασφαλείας ΔΙΚΤΎΟΥ. ASP.NET περιλαμβάνει επίσης μια βασισμένη σε ρόλους δυνατότητα ασφαλείας που μπορείτε να εφαρμόσετε για τόσο των Microsoft Windows και λογαριασμοί χρήστη σε Windows.

Αυτό το άρθρο χωρίζεται σε τα εξής ενότητες:

Ροή ασφαλείας με μια αίτηση

Τα ακόλουθα βήματα περιγράφουν την ακολουθία συμβάντων, όταν ένα πρόγραμμα-πελάτη κάνει μια αίτηση:
  1. Ένας υπολογιστής-πελάτης ζητά μια σελίδα .aspx που βρίσκεται σε ένα διακομιστή IIS ο διακομιστής.
  2. Τα διαπιστευτήρια του πελάτη, μεταβιβάζονται IIS.
  3. IIS ελέγχει την ταυτότητα του προγράμματος-πελάτη και προωθεί τον έλεγχο ταυτότητας το διακριτικό μαζί με αίτηση του προγράμματος-πελάτη για το ASP.Η διαδικασία εργασίας ΔΙΚΤΎΟΥ.
  4. Με βάση το διακριτικό έλεγχο ταυτότητας από το IIS και το ρυθμίσεις παραμέτρων για την εφαρμογή Web, οι ASP.NET αποφασίσει αν θα απομίμηση ενός χρήστη σε νήμα που η επεξεργασία της αίτησης. Σε ένα σαφώς διαφορά μεταξύ Microsoft Active Server Pages (ASP) και ASP.NET ASP.Χωρίς ΚΑΘΑΡΉ πλέον υποδύεται το χρήστη με έλεγχο ταυτότητας από προεπιλογή. Για να ενεργοποιήσετε την απομίμηση, πρέπει να ορίσετε το μίμηση χαρακτηριστικό στην ενότητα ταυτότητα στο αρχείο Web.config για TRUE.
Για περισσότερες πληροφορίες σχετικά με τη ροή ασφαλείας, ανατρέξτε το μετά το θέμα του.NET Framework κιτ ανάπτυξης λογισμικού (SDK) τεκμηρίωση:
ASP.Ροή δεδομένων Δικτύου
.aspx http://MSDN.Microsoft.com/en-us/library/xa68twcb (vs.71) (http://msdn.microsoft.com/en-us/library/xa68twcb(vs.71).aspx)
Για πρόσθετες πληροφορίες σχετικά με απομίμηση σε σελίδες ASP.NET, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο Γνωσιακή Βάση της Microsoft:
306158  (http://support.microsoft.com/kb/306158/EN-US/ ) ΠΛΗΡΟΦΟΡΙΕΣ: Υλοποίηση απομίμησης σε μια ASP.NET εφαρμογής

Σχετικές ρυθμίσεις παραμέτρων

IIS διατηρεί τις ρυθμίσεις παραμέτρων που σχετίζονται με την ασφάλεια στο IIS μετα-βάσης. Ωστόσο, ASP.Διατηρεί το ΔΊΧΤΥ ασφαλείας (και άλλων) ρύθμιση παραμέτρων ρυθμίσεις στα αρχεία παραμέτρων Extensible Markup Language (XML). Παρόλο που αυτό Γενικά απλοποιεί την ανάπτυξη της εφαρμογής σας από μια ασφαλείας άποψη, το μοντέλο ασφαλείας που θεσπίζει η εφαρμογή σας απαιτεί την σωστή ρύθμιση παραμέτρων μετα-βάση IIS και σας ASP.NET εφαρμογής μέσω του αρχείου ρύθμισης παραμέτρων (Web.config).

Το ακόλουθο ενότητες παραμέτρων σχετίζονται με ASP.Ασφάλεια ΔΙΚΤΎΟΥ:

Έλεγχος ταυτότητας

Έλεγχος ταυτότητας είναι η διαδικασία με την οποία μπορείτε να αποκτήσετε αναγνώρισης πιστοποιήσεις, όπως το όνομα χρήστη και κωδικό πρόσβασης και να επικυρώσετε τις πιστοποιήσεις έναντι ορισμένων αρχή.

ASP.NET παρέχει τέσσερις ελέγχου ταυτότητας υπηρεσίες παροχής:

Έλεγχος ταυτότητας φορμών

Έλεγχος ταυτότητας φορμών αναφέρεται σε ένα σύστημα στο οποίο χωρίς_έλεγχο_ταυτότητας Οι αιτήσεις ανακατευθύνονται σε μια φόρμα Hypertext Markup Language (HTML) που Οι χρήστες πληκτρολογούν τις πιστοποιήσεις τους. Αφού ο χρήστης παρέχει διαπιστευτήρια και υποβάλλει στη φόρμα, την εφαρμογή πιστοποιεί την αίτηση και ζητήματα συστήματος ένα δελτίο εξουσιοδότησης με τη μορφή ενός cookie. Αυτό το cookie που περιέχει το πλήκτρο για να σαρώσετε ξανά την ταυτότητα ή διαπιστευτήρια. Οι επόμενες αιτήσεις από το το cookie περιλαμβάνουν αυτόματα το πρόγραμμα περιήγησης.

Για περισσότερες πληροφορίες σχετικά με Έλεγχος ταυτότητας φορμών, ανατρέξτε στο ακόλουθο θέμα της το.NET Framework SDK τεκμηρίωση:
Η υπηρεσία παροχής ελέγχου ταυτότητας φορμών
.aspx http://MSDN.Microsoft.com/en-us/library/907hb5w9 (vs.71) (http://msdn.microsoft.com/en-us/library/907hb5w9(vs.71).aspx)
Για πρόσθετες πληροφορίες ελέγχου ταυτότητας φορμών με ASP.NET, κάντε κλικ στο άρθρο αριθμός παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
301240  (http://support.microsoft.com/kb/301240/EN-US/ ) ΤΡΌΠΟΣ: Εφαρμογή που βασίζεται σε φόρμες ελέγχου ταυτότητας σε σας ASP.NET εφαρμογής χρησιμοποιώντας C#.NET

Έλεγχος ταυτότητας των Windows

Με έλεγχο ταυτότητας των Windows, IIS εκτελεί έλεγχο ταυτότητας, και με έλεγχο ταυτότητας διακριτικού προωθείται η ASP.Η διαδικασία εργασίας ΔΙΚΤΎΟΥ. Το πλεονέκτημα της χρήσης των Windows έλεγχος ταυτότητας είναι ότι απαιτεί ελάχιστη κωδικοποίησης. Θέλετε να χρησιμοποιήσετε τα Windows έλεγχος ταυτότητας απομιμούνται το λογαριασμό χρήστη των Windows που ελέγχει την ταυτότητα των υπηρεσιών IIS πριν παραδώσετε την αίτηση για ASP.NET.

Για περισσότερες πληροφορίες σχετικά με τον έλεγχο ταυτότητας των Windows, ανατρέξτε στο ακόλουθο θέμα της.NET Τεκμηρίωση Framework SDK:
Η υπηρεσία παροχής WindowsAuthenticationModule
.aspx http://MSDN.Microsoft.com/en-us/library/907hb5w9 (vs.71) (http://msdn.microsoft.com/en-us/library/907hb5w9(vs.71).aspx)

Έλεγχος ταυτότητας Passport

Ο έλεγχος ταυτότητας Passport είναι μια υπηρεσία κεντρικό έλεγχο ταυτότητας η Microsoft παρέχει, που προσφέρει ένα μεμονωμένο αρχείο καταγραφής σε και βασικών υπηρεσιών προφίλ για τοποθεσίες του μέλους. Συνήθως χρησιμοποιείται έλεγχος ταυτότητας Passport όταν χρειάζεται μονό αρχείο καταγραφής τη δυνατότητα σε πολλούς τομείς.

Για περισσότερες πληροφορίες πληροφορίες σχετικά με τον έλεγχο ταυτότητας Passport, ανατρέξτε στο ακόλουθο θέμα της το .Τεκμηρίωση NET Framework SDK:
Η υπηρεσία παροχής ελέγχου ταυτότητας Passport
.aspx http://MSDN.Microsoft.com/en-us/library/f8e50t0f (vs.71) (http://msdn.microsoft.com/en-us/library/f8e50t0f(vs.71).aspx)

Προεπιλεγμένο έλεγχο ταυτότητας

Προεπιλεγμένο έλεγχο ταυτότητας χρησιμοποιείται όταν δεν θέλετε ασφαλείας στην εφαρμογή σας Web. απαιτείται ανώνυμη πρόσβαση για την ασφάλεια αυτή η υπηρεσία παροχής. Ανάμεσα σε όλες τις υπηρεσίες παροχής ελέγχου ταυτότητας παρέχει προεπιλεγμένο έλεγχο ταυτότητας μέγιστη απόδοση για την εφαρμογή σας. Είναι επίσης αυτήν την υπηρεσία παροχής ελέγχου ταυτότητας χρησιμοποιείται όταν χρησιμοποιήσετε το δικό σας λειτουργικής μονάδας ασφαλείας.

Άδεια

Άδεια είναι η διαδικασία η οποία επαληθεύει εάν το με έλεγχο ταυτότητας χρήστης έχει πρόσβαση στους πόρους που ζητήθηκε.

ASP.NET προσφέρει το παρακάτω υπηρεσίες παροχής άδειας:

FileAuthorization

Το FileAuthorizationModule Κλάση εκτελεί αρχείου εξουσιοδότησης και είναι ενεργό όταν χρησιμοποιείτε Έλεγχος ταυτότητας των Windows. FileAuthorizationModule είναι υπεύθυνος για την εκτέλεση ελέγχων για τον έλεγχο πρόσβασης των Windows Λίστες (ACL) για να προσδιορίσετε αν ένας χρήστης θα πρέπει να έχουν πρόσβαση.

UrlAuthorization

Το UrlAuthorizationModule Κλάση εκτελεί εξουσιοδότηση Uniform Resource Locator (URL) που ελέγχει την άδεια με βάση το χώρο ονομάτων URI. Μπορεί να είναι URI χώρων ονομάτων διαφέρουν σημαντικά από τις φυσικές διαδρομές φακέλων και αρχείων που τα δικαιώματα NTFS χρήση.

UrlAuthorizationModule εφαρμόζει δύο ισχυρισμών θετικών και αρνητικών εξουσιοδότησης. Αυτό σημαίνει ότι μπορείτε να χρησιμοποιήσετε τη λειτουργική μονάδα για επιλεκτικά να επιτρέψετε ή να αρνηθείτε πρόσβαση αυθαίρετη τμήματα του URI χώρου ονομάτων για τους χρήστες, τους ρόλους (όπως η διαχείριση, Μηχανικοί δοκιμής, και οι διαχειριστές) και ρήματα (όπως η GET και POST).

Για περισσότερες πληροφορίες σχετικά με την άδεια σε σελίδες ASP.NET, ανατρέξτε στο ακόλουθο θέμα με το.Τεκμηρίωση NET Framework SDK:
ASP.ΚΑΘΑΡΉ άδεια
.aspx http://MSDN.Microsoft.com/en-us/library/wce3kxhd (vs.71) (http://msdn.microsoft.com/en-us/library/wce3kxhd(vs.71).aspx)

Ασφάλεια βάσει ρόλων

Ασφάλεια βάσει ρόλων σε σελίδες ASP.NET είναι παρόμοιο με το ρόλο που βασίζεται σε ασφάλεια που χρησιμοποιούν Microsoft COM + και Microsoft Transaction Server (MTS), Αν και υπάρχουν σημαντικές διαφορές. Ασφάλεια βάσει ρόλων σε σελίδες ASP.Δεν είναι ΚΑΘΑΡΌ περιορίζεται σε λογαριασμούς των Windows και ομάδες. Για παράδειγμα, εάν ο έλεγχος ταυτότητας των Windows και είναι ενεργοποιημένη η απομίμηση, η ταυτότητα του χρήστη είναι μια ταυτότητα των Windows (User.Identity.Name = "Τομέας\όνομα_χρήστη"). Μπορείτε να ελέγξετε τις ταυτότητες για η ιδιότητα μέλους σε συγκεκριμένους ρόλους και περιορισμός της πρόσβασης αναλόγως. Για παράδειγμα:

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#.ΚΑΘΑΡΌ κώδικα
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");
				
Εάν χρησιμοποιείτε έλεγχο ταυτότητας φορμών δεν εκχωρούνται ρόλους για το με έλεγχο ταυτότητας χρήστη. θα πρέπει να γίνει μέσω προγραμματισμού. Για να αντιστοιχήσετε ρόλους για το με έλεγχο ταυτότητας χρήστη, χρησιμοποιήστε το OnAuthenticate συμβάν στη λειτουργική μονάδα ελέγχου ταυτότητας (οι οποίες είναι φόρμες λειτουργική μονάδα ελέγχου ταυτότητας σε αυτό το παράδειγμα) για να δημιουργήσετε ένα νέο GenericPrincipal αντικείμενο και να αντιστοιχίσετε το Χρήστης ιδιότητα το HttpContext. Ο ακόλουθος κώδικας απεικονίζει Αυτό:

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#.ΚΑΘΑΡΌ κώδικα
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);
      }
   }
} 
				
Για να ελέγξετε αν ο χρήστης είναι σε συγκεκριμένο ρόλο και περιορισμός πρόσβασης Συνεπώς, χρησιμοποιήστε τον ακόλουθο κώδικα (ή παρόμοιο) στις σελίδες .aspx:

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#.ΚΑΘΑΡΌ κώδικα
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");
				
Για πρόσθετες πληροφορίες, κάντε κλικ στο άρθρο αριθμός παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
306238  (http://support.microsoft.com/kb/306238/EN-US/ ) ΤΡΌΠΟΣ: Εφαρμογή βασίζεται σε ρόλους ασφαλείας με τον έλεγχο ταυτότητας που βασίζεται σε φόρμες στο σας ASP.NET εφαρμογής χρησιμοποιώντας τη Visual Basic.NET
Για περισσότερες πληροφορίες σχετικά με την ασφάλεια που βασίζεται σε ρόλους, ανατρέξτε στο ακόλουθο θέμα με το.Τεκμηρίωση NET Framework SDK:
Ασφάλεια βάσει ρόλων
.aspx http://MSDN.Microsoft.com/en-us/library/52kd59t0 (vs.71) (http://msdn.microsoft.com/en-us/library/52kd59t0(vs.71).aspx)

Αναφορές

Για πληροφορίες σχετικά με ASP.NET οδηγίες ασφαλείας, δείτε το ακόλουθη λευκή βίβλο στο MSDN:
Έλεγχος ταυτότητας σε σελίδες ASP.NET:.NET οδηγίες ασφαλείας
http://MSDN.Microsoft.com/en-us/library/ms978378.aspx (http://msdn.microsoft.com/en-us/library/ms978378.aspx)
Για περισσότερες γενικές πληροφορίες σχετικά με τις ASP.NET, ανατρέξτε το ακόλουθη ομάδα συζήτησης του MSDN:
Microsoft.Public.dotnet.Framework.ASPNET (http://msdn.microsoft.com/newsgroups/default.aspx?query=microsoft.public.dotnet.framework.aspnet&dg=&cat=en-us-msdn&lang=en&cr=US&pt=&catlist=774F24A2-F71F-425F-AC2B-DC48AB0DA5C9&dglist=&ptlist=&exp=&sloc=en-us)
Για πρόσθετες πληροφορίες, κάντε κλικ στο άρθρο αριθμοί παρακάτω για να προβάλετε τα άρθρα της Γνωσιακής Βάσης της Microsoft:
311094  (http://support.microsoft.com/kb/311094/EN-US/ ) Σφάλμα: Το μήνυμα λάθους "configurationexception" κατά την απομίμηση του λογαριασμούς ανάγνωση ρύθμισης παραμέτρων
306359  (http://support.microsoft.com/kb/306359/EN-US/ ) PRB: Request.ServerVariables("LOGON_USER") επιστρέφει συμβολοσειρά Empty σε σελίδες ASP.NET
313091  (http://support.microsoft.com/kb/313091/EN-US/ ) ΔΙΑΔΙΚΑΣΙΕΣ: Δημιουργία κλειδιών χρησιμοποιώντας τη Visual Basic.NET για χρήση του ελέγχου ταυτότητας φορμών
313116  (http://support.microsoft.com/kb/313116/EN-US/ ) PRB: Αιτήσεις ελέγχου ταυτότητας φορμών θα κατευθύνονται προς loginUrl σελίδα
Για περισσότερες πληροφορίες, ανατρέξτε στα ακόλουθα βιβλία:
Reilly, ο Douglas J. Σχεδίαση Microsoft ASP.NET εφαρμογές (http://www.microsoft.com/mspress/books/toc/5136.aspx) . Microsoft Press, 2001.

Esposito Dino.Δόμηση λύσεων Web με ASP.NET και ADO.NET (http://www.microsoft.com/learning/en/us/Books/5727.aspx) . Microsoft Press, 2001.

Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Λέξεις-κλειδιά: 
kbproductlink kbarttyperoadmap kbconfig kbinfo kbsecurity kbweb kbmt KB306590 KbMtel
Μηχανικά μεταφρασμένοΜηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:306590  (http://support.microsoft.com/kb/306590/en-us/ )