Thông tin: T?ng quan v? an ninh ASP.NET

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 306590 - Xem s?n ph?m mà bài này áp d?ng vào.
Bài vi?t này đ? c?p đ?n sau Microsoft .net Không gian tên thư vi?n l?p khung:
  • System.web.Security
  • System.web.Principal
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này cung c?p m?t gi?i thi?u v? ASP.NET an ninh.

Đ? b? sung ASP.NET overviews, xem dư?i đây Bài vi?t cơ s? ki?n th?c Microsoft:
305140 Thông tin: L? tr?nh ASP.NET

THÔNG TIN THÊM

ASP.net cung c?p cho b?n ki?m soát nhi?u hơn đ? th?c hi?n an ninh cho ?ng d?ng c?a b?n. ASP.net an ninh ho?t đ?ng k?t h?p v?i Microsoft Internet Information Services An ninh (IIS) và bao g?m các b?n ghi d?ch v? xác th?c và ?y quy?n đ? th?c hi?n mô h?nh b?o m?t ASP.NET. ASP.net c?ng bao g?m m?t vai tr? d?a trên tính năng b?o m?t mà b?n có th? th?c hi?n cho c? Microsoft Windows và trương m?c ngư?i dùng Windows không.

Bài vi?t này đư?c chia thành sau đây ph?n:

D?ng ch?y c?a an ninh v?i m?t yêu c?u

Các bư?c sau phác th?o các chu?i s? ki?n khi m?t khách hàng làm cho m?t yêu c?u:
  1. M?t khách hàng yêu c?u m?t trang .aspx n?m trên m?t IIS h? ph?c v?.
  2. ?y nhi?m c?a khách hàng đư?c thông qua đ? IIS.
  3. IIS authenticates khách hàng và chuy?n ti?p các xác th?c m? thông báo cùng v?i yêu c?u c?a khách hàng đ?n quá tr?nh ASP.NET công nhân.
  4. D?a trên m? thông báo xác th?c t? IIS và các cài đ?t chuyên bi?t c?u h?nh cho ứng dụng web, ASP.NET quy?t đ?nh m?o danh ngư?i dùng trên các ch? đ? x? l? yêu c?u. Trong m?t khác bi?t s? khác bi?t gi?a Microsoft Trang ph?c v? hi?n ho?t (ASP) và ASP.NET, ASP.NET không có c?n impersonates ngư?i s? d?ng xác th?c theo m?c đ?nh. Đ? cho phép m?o danh, b?n ph?i đ?t thu?c tính m?o danh c?a ph?n danh tính trong Web.config file thành true.
Đ? bi?t thêm thông tin v? d?ng b?o m?t, h?y tham kh?o các Sau ch? đ? trong Khuôn kh? .NET ph?n m?m phát tri?n Kit (SDK) tài li?u:
ASP.net Data Flow
http://MSDN.Microsoft.com/en-US/Library/xa68twcb (vs.71) .aspx
Đ? có thêm thông tin v? m?o trong ASP.NET, b?m vào s? bài vi?t dư?i đây đ? xem các bài vi?t trong cơ s? ki?n th?c Microsoft:
306158 Thông tin: Th?c hi?n m?o danh trong m?t ?ng d?ng ASP.NET

cài đ?t chuyên bi?t c?u h?nh liên quan

Duy tr? IIS cài đ?t chuyên bi?t c?u h?nh b?o m?t liên quan trong nh?ng IIS metabase. Tuy nhiên, ASP.NET duy tr? an ninh (và khác) c?u h?nh thi?t l?p trong t?p tin c?u h?nh Extensible Markup Language (XML). M?c dù đi?u này nói chung đơn gi?n hoá vi?c tri?n khai các ?ng d?ng c?a b?n t? m?t b?o m?t quan đi?m, mô h?nh b?o m?t ?ng d?ng c?a b?n thông qua đ?i các chính xác c?u h?nh c?a c? hai IIS metabase và các ?ng d?ng ASP.NET thông qua t?p tin c?u h?nh (Web.config).

Sau đây c?u h?nh ph?n có liên quan đ?n an ninh ASP.NET:

Xác th?c

Xác th?c là quá tr?nh mà b?n có đư?c nh?n d?ng credentials như tên người dùng và m?t kh?u và xác nh?n nh?ng ?y nhi?m Đ?i v?i m?t s? cơ quan.

ASP.net cung c?p b?n xác th?c các nhà cung c?p:

Các h?nh th?c xác th?c

Các h?nh th?c xác th?c đ? c?p đ?n m?t h? th?ng trong đó unauthenticated yêu c?u đư?c chuy?n hư?ng đ?n m?t h?nh th?c Ngôn ng? đánh d?u ki?m siêu văn b?n (HTML) trong đó ngư?i dùng nh?p ?y nhi?m c?a h?. Sau khi ngư?i s? d?ng cung c?p ch?ng ch? và n?p các h?nh th?c, các ?ng d?ng authenticates yêu c?u, và các v?n đ? h? th?ng m?t ?y quy?n vé trong các h?nh th?c c?a m?t cookie. Cookie này có ch?a các ch?ng ch? ho?c m?t ch?a khóa đ? reacquire danh tính. Ti?p theo yêu c?u t? các tr?nh duy?t s? t? đ?ng bao g?m các cookie.

Đ? bi?t thêm thông tin v? Các h?nh th?c xác th?c, đ? c?p đ?n ch? đ? sau trong Khuôn kh? .NET SDK tài li?u:
Nhà cung c?p các h?nh th?c xác th?c
http://MSDN.Microsoft.com/en-US/Library/907hb5w9 (vs.71) .aspx
Cho thông tin b? sung các h?nh th?c xác th?c trong ASP.NET, Click vào bài vi?t s? dư?i đây đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
301240 Làm th? nào đ?: Th?c hi?n d?a trên các h?nh th?c xác th?c trong ?ng d?ng ASP.NET c?a b?n b?ng cách s? d?ng C# .net

Xác th?c c?a Windows

Trong c?a s? xác th?c, IIS th?c hi?n xác th?c, và m? thông báo xác th?c đư?c chuy?n ti?p đ?n quá tr?nh ASP.NET công nhân. L?i th? c?a vi?c s? d?ng Windows xác th?c là nó đ?i h?i t?i thi?u m? hóa. B?n có th? mu?n s? d?ng Windows xác th?c m?o danh trương m?c ngư?i dùng Windows IIS authenticates trư?c khi b?n có bàn tay ra các yêu c?u đ? ASP.NET.

Đ? bi?t thêm thông tin v? Windows xác th?c, đ? c?p đ?n ch? đ? sau trong .net Khuôn kh? SDK tài li?u:
Các nhà cung c?p WindowsAuthenticationModule
http://MSDN.Microsoft.com/en-US/Library/907hb5w9 (vs.71) .aspx

H? chi?u xác th?c

H? chi?u xác th?c là m?t b?n ghi d?ch v? xác th?c t?p trung, mà Microsoft cung c?p, mà cung c?p m?t kí nh?p duy nh?t trên và l?i h? sơ b?n ghi d?ch v? Đ?i v?i các web site thành viên. Thông thư?ng, h? chi?u xác th?c đư?c s? d?ng khi b?n c?n s? ghi đơn vào kh? năng qua nhi?u tên mi?n.

Đ? bi?t thêm thông tin v? h? chi?u xác th?c, h?y tham kh?o ch? đ? sau đây trong các Khuôn kh? .NET SDK tài li?u:
Các nhà cung c?p xác th?c h? chi?u
http://MSDN.Microsoft.com/en-US/Library/f8e50t0f (vs.71) .aspx

Xác th?c m?c đ?nh

M?c đ?nh xác th?c đư?c s? d?ng khi b?n không mu?n b?t k? b?o m?t trên ứng dụng web c?a b?n; Chưa xác đ?nh ngư?i truy c?p là c?n thi?t cho an ninh này nhà cung c?p. Trong s? t?t c? các nhà cung c?p xác th?c, xác th?c m?c đ?nh cung c?p hi?u su?t t?i đa cho ?ng d?ng c?a b?n. Nhà cung c?p xác th?c này c?ng là đư?c s? d?ng khi b?n s? d?ng mô-đun b?o m?t tu? ch?nh c?a riêng b?n.

?y quy?n

U? quy?n là m?t quá tr?nh xác minh n?u các xác th?c ngư?i dùng có quy?n truy c?p vào các ngu?n tài nguyên đư?c yêu c?u.

ASP.net cung c?p các các nhà cung c?p ?y quy?n sau:

FileAuthorization

Các l?p h?c FileAuthorizationModule th?c hi?n t?p tin ?y quy?n và đư?c kích ho?t khi b?n s? d?ng Xác th?c c?a Windows. FileAuthorizationModule có trách nhi?m th?c hi?n ki?m tra trên Windows ki?m soát truy c?p Danh sách (ACLs) đ? xác đ?nh li?u m?t ngư?i s? d?ng nên có th? truy c?p.

UrlAuthorization

Các l?p h?c UrlAuthorizationModule th?c hi?n u? quy?n B? đ?nh v? Tài nguyên Đ?ng nh?t (URL), mà ki?m soát ?y quy?n d?a trên không gian tên URI. URI không gian tên có th? khá khác nhau t? các đư?ng d?n m?c tin thư thoại và t?p tin v?t l? r?ng quy?n NTFS s? d?ng.

UrlAuthorizationModule th?c hi?n c? hai kh?ng đ?nh tích c?c và tiêu c?c ?y quy?n; có ngh?a là, b?n có th? s? d?ng mô-đun đ? ch?n l?c cho phép ho?c t? ch?i truy c?p vào b?t k? ph?n c?a không gian tên URI cho ngư?i dùng, vai tr? (ch?ng h?n như qu?n l?, xét nghi?m, và qu?n tr? viên), và đ?ng t? (ví d? như GET và POST).

Cho thông tin thêm v? ?y quy?n trong ASP.NET, đ? c?p đ?n các ch? đ? sau đây trong tài li?u hư?ng d?n Khuôn kh? .NET SDK:
ASP.net ?y quy?n
http://MSDN.Microsoft.com/en-US/Library/wce3kxhd (vs.71) .aspx

D?a trên vai tr? an ninh

D?a trên vai tr? an ninh trong ASP.NET là tương t? như trên vai tr? an ninh Microsoft COM + và Microsoft giao d?ch máy ch? (MTS) s? d?ng, M?c dù có nh?ng khác bi?t quan tr?ng. Không ph?i là d?a trên vai tr? an ninh trong ASP.NET gi?i h?n cho các tài kho?n Windows và các nhóm. Ví d?, n?u xác th?c c?a Windows và m?o danh đư?c kích ho?t, danh tính c?a ngư?i dùng là m?t nh?n d?ng Windows (User.Identity.Name = "Vùng\tên_ngư?i_dùng"). B?n có th? ki?m tra danh tính cho thành viên trong vai tr? c? th? và h?n ch? truy c?p cho phù h?p. Cho Ví d?:

Visual Basic net m?
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 m?
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");
				
N?u b?n đang s? d?ng các h?nh th?c xác th?c, vai tr? không đư?c gán cho các dùng xác th?c; b?n ph?i làm đi?u này l?p tr?nh. Đ? gán vai tr? cho các xác th?c ngư?i s? d?ng, s? d?ng các s? ki?n OnAuthenticate c?a các mô-đun xác th?c (trong đó là các h?nh th?c mô-đun xác th?c trong ví d? này) đ? t?o ra m?t đ?i tư?ng GenericPrincipal m?i, và gán cho nó đ? ngư?i s? d?ng tài s?n c?a HttpContext. M? sau đây minh ho? Đi?u này:

Visual Basic net m?
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 m?
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);
      }
   }
} 
				
Đ? ki?m tra xem ngư?i s? d?ng trong m?t vai tr? c? th? và h?n ch? truy c?p Theo đó, s? d?ng m? sau đây (ho?c tương t?) ? trang .aspx c?a b?n:

Visual Basic net m?
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 m?
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");
				
Đ? bi?t thêm chi ti?t, b?m vào các bài vi?t s? dư?i đây đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
306238 Làm th? nào đ?: Th?c hi?n d?a trên vai tr? an ninh v?i d?a trên các h?nh th?c xác th?c trong ?ng d?ng ASP.NET c?a b?n b?ng cách s? d?ng Visual Basic .net
Đ? bi?t thêm thông tin v? an ninh d?a trên vai tr?, tham kh?o đ? ch? đ? sau trong tài li?u Khuôn kh? .NET SDK:
D?a trên vai tr? an ninh
http://MSDN.Microsoft.com/en-US/Library/52kd59t0 (vs.71) .aspx

THAM KH?O

Đ? có thông tin v? nguyên t?c b?o m?t ASP.NET, xem các sau MSDN gi?y tr?ng:
Xác th?c trong ASP.NET: Net an ninh hư?ng d?n
http://MSDN.Microsoft.com/en-US/Library/ms978378.aspx
Đ? có thông tin t?ng quát hơn v? ASP.NET, tham kh?o các nhóm tin MSDN sau đây:
Microsoft.Public.DotNet.Framework.aspnet
Đ? bi?t thêm chi ti?t, b?m vào các bài vi?t s? đi?n tho?i dư?i đây đ? xem các bài vi?t trong cơ s? ki?n th?c Microsoft:
311094 L?I: "ConfigurationException" thông báo l?i khi Impersonated chi?m đ?c c?u h?nh
306359 PRB: Request.ServerVariables("LOGON_USER") tr? v? chu?i r?ng trong ASP.NET
313091 Làm th? nào đ?: T?o phím b?ng cách s? d?ng Visual Basic net đ? s? d?ng trong các h?nh th?c xác th?c
313116 PRB: Các h?nh th?c xác th?c yêu c?u không đư?c d?n đ?n loginUrl trang
Đ? bi?t thêm chi ti?t, xem các cu?n sách sau đây:
Reilly, Douglas J. Vi?c thi?t k? các ?ng d?ng Microsoft ASP.NET. Microsoft Press, 2001.

Esposito, Dino.Các gi?i pháp Web xây d?ng v?i ASP.NET và ADO.NET. Microsoft Press, 2001.

Thu?c tính

ID c?a bài: 306590 - L?n xem xét sau cùng: 28 Tháng Sáu 2012 - Xem xét l?i: 3.0
Áp d?ng
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
T? khóa: 
kbproductlink kbarttyperoadmap kbconfig kbinfo kbsecurity kbweb kbmt KB306590 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này: 306590

Cung cấp Phản hồi

 

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