Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Thông tin: Tổng quan về bảo mật ASP.NET

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch thuật của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa lại thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung cấp các bài viết được cả biên dịch viên và phần mềm dịch thuật thực hiện và cộng đồng chỉnh sửa lại để 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 nhiều ngôn ngữ Tuy nhiên, bài viết do máy dịch hoặc thậm chí cộng đồng chỉnh sửa sau không phải lúc nào cũng hoàn hảo. Các 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, 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.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 306590
Bài viết này đề cập đến tên thư viện lớp Microsoft Khuôn khổ .NET sau:
  • System.Web.Security
  • System.Web.Principal
Tóm tắt
Bài viết này cung cấp một giới thiệu về bảo mật ASP.NET.

Để xem thêm tổng quan ASP.NET, hãy tham khảo bài viết sau trong Cơ sở Kiến thức Microsoft:
305140 Thông tin: ASP.NET lộ trình
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 bảo mật để sử dụng. Bảo mật ASP.NET hoạt động cùng với Microsoft Internet Information Services (IIS) bảo mật và bao gồm bản ghi dịch vụ xác thực và mức cấp phép để thực hiện mô hình bảo mật ASP.NET. ASP.NET cũng bao gồm các tính năng bảo mật dựa trên vai trò bạn có thể áp dụng cho Microsoft Windows và tài khoản người dùng Windows.

Bài viết này được chia thành các phần sau đây:

Dòng bảo mật với một yêu cầu

Các bước sau phác thảo chuỗi sự kiện khi khách hàng yêu cầu:
  1. Khách hàng yêu cầu một trang .aspx nằm trên một IISserver.
  2. Chứng chỉ máy tính khách được chuyển tới IIS.
  3. IIS authenticates khách hàng và chuyển tiếp authenticatedtoken cùng với các khách hàng Bộ xử lý Báo cáo riêng biệt ASP.NET.
  4. Dựa trên mã thông báo xác thực cài đặt chuyên biệt IIS và theconfiguration cho các ứng dụng web ASP.NET quyết định toimpersonate người dùng trên các chủ đề xử lý yêu cầu. Trong một distinctdifference giữa Microsoft Active Server trang (ASP) và ASP.NET, ASP.NET nolonger impersonates xác thực người dùng mặc định. Để cho phép mạo danh, bạn phải đặt mạo danh tính của danh tính trong tệp Web.config đúng.
Để biết thêm chi tiết về dòng bảo mật, hãy tham khảo chủ đề sau trong tài liệu Khuôn khổ .NET phần mềm phát triển (SDK): Để biết thêm thông tin về mạo trong ASP.NET, bấm số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
306158 Thông tin: Thực hiện đóng vai trong ứng dụng ASP.NET
Quay lại đầu trang

cài đặt chuyên biệt cấu hình liên quan

IIS duy trì cài đặt chuyên biệt cấu hình bảo mật trong siêu dữ liệu IIS. Tuy nhiên, ASP.NET duy trì bảo mật (khác) cài đặt chuyên biệt cấu hình trong tập tin cấu hình ngôn ngữ đánh dấu kiểm có thể mở rộng (XML). Mặc dù điều này thường đơn giản hoá việc triển khai ứng dụng của bạn từ một quan điểm bảo mật, mô hình bảo mật ứng dụng của bạn thông qua đòi hỏi cấu hình đúng cả IIS siêu dữ liệu và ứng dụng ASP.NET của bạn thông qua tập tin cấu hình (Web.config).

Các cấu phần sau đây liên quan đến bảo mật ASP.NET: Quay lại đầu trang

Xác thực

Xác thực là quá trình mà bạn có được xác định thông tin như tên người dùng và mật khẩu và xác nhận các thông tin kí nhập với một số cơ quan.

ASP.NET cung cấp 4 xác thực nhà cung cấp:

Xác thực biểu mẫu

Hình thức xác thực là một hệ thống mà yêu cầu không được xác thực được chuyển hướng tới một hình thức Ngôn ngữ đánh dấu kiểm siêu văn bản (HTML) mà người dùng nhập ủy nhiệm của mình. Sau khi người dùng cung cấp thông tin kí nhập và gửi biểu mẫu, ứng dụng authenticates yêu cầu, và các vấn đề hệ thống một vé giấy phép thành cookie. Cookie này chứa các thông tin hoặc phím để reacquire nhận dạng. Các yêu cầu từ trình duyệt tự động bao gồm các cookie.

Để biết thêm thông tin về xác thực biểu mẫu, hãy tham khảo chủ đề sau trong tài liệu Khuôn khổ .NET SDK: Để biết thêm thông tin xác thực biểu mẫu trong ASP.NET, bấm số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
301240 Làm thế nào để: Thực hiện xác thực dựa trên biểu mẫu trong ứng dụng ASP.NET của bạn bằng cách sử dụng C# .NET

Xác thực Windows

Xác thực Windows IIS thực hiện xác thực và mã thông báo xác thực được chuyển tiếp tới trình ASP.NET riêng biệt. Sử dụng xác thực Windows là nó yêu cầu tối thiểu mã. Bạn có thể sử dụng xác thực Windows mạo danh tài khoản người dùng Windows IIS authenticates trước khi tay ra yêu cầu ASP.NET.

Để biết thêm thông tin về xác thực Windows, hãy tham khảo chủ đề sau trong tài liệu Khuôn khổ .NET SDK:
Nhà cung cấp WindowsAuthenticationModule
http://MSDN.Microsoft.com/en-US/Library/907hb5w9 (vs.71).aspx

Xác thực bởi Passport

Chiếu xác thực là một trung tâm bản ghi dịch vụ xác thực, Microsoft cung cấp, cung cấp một kí nhập và lõi cấu hình bản ghi dịch vụ cho các tư cách thành viên trang. Thông thường, chiếu xác thực được sử dụng khi bạn cần kí nhập duy nhất khả năng qua nhiều tên miền.

Để biết thêm thông tin về chiếu xác thực, hãy tham khảo chủ đề sau trong tài liệu Khuôn khổ .NET SDK:

Xác thực mặc định

Xác thực mặc định đượ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; truy nhập vô danh được yêu cầu cho các nhà cung cấp bảo mật này. Trong tất cả các nhà cung cấp xác thực, xác thực mặc định cung cấp tối đa hiệu suất cho ứng dụng của bạn. Nhà cung cấp xác thực này cũng đượ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.

Quay lại đầu trang

mức cấp phép

mức cấp phép là quá trình xác minh xem xác thực người dùng có quyền truy cập vào các tài nguyên được yêu cầu.

ASP.NET cung cấp các nhà cung mức cấp phép sau:

FileAuthorization

Lớp FileAuthorizationModule thực hiện tệp mức cấp phép và đang hoạt động khi bạn sử dụng xác thực Windows. FileAuthorizationModule chịu trách nhiệm thực hiện kiểm tra Windows Access Control liệt kê (ACLs) để xác định xem người dùng phải có quyền truy cập.

UrlAuthorization

Lớp UrlAuthorizationModule thực hiện mức cấp phép định vị tài nguyên thống nhất (URL), điều khiển dựa trên không gian tên URI mức cấp phép. URI tên có thể hơi khác với các đường dẫn mục tin thư thoại và tập tin vật lý 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; tức là, bạn có thể sử dụng mô-đun để lựa chọn cho phép hoặc từ chối truy cập vào bất kỳ phần URI tên người dùng, vai trò (chẳng hạn như quản lý, thử nghiệm và quản trị viên) và từ (chẳng hạn như GET và POST).

Để biết thêm thông tin về mức cấp phép trong ASP.NET, hãy tham khảo chủ đề sau trong tài liệu Khuôn khổ .NET SDK: Quay lại đầu trang

Bảo mật Dựa trên Vai trò

Vai trò bảo mật trong ASP.NET là tương tự với vai trò bảo mật Microsoft COM + và máy chủ giao dịch Microsoft (MTS) sử dụng, mặc dù có sự khác biệt quan trọng. Vai trò bảo mật trong ASP.NET không giới hạn tài khoản Windows và nhóm. Ví dụ: nếu Windows xác thực và mạo danh được bật, danh tính của người dùng là bản Windows (User.Identity.Name = "Vùng\tên_người_dùng"). Bạn có thể kiểm tra danh tính cho các thành viên trong vai trò cụ thể và hạn chế phép truy nhập phù hợp. Ví dụ:

Mã Visual Basic .NET
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 xác thực biểu mẫu, vai trò không được gán cho người dùng xác thực; bạn phải thực hiện việc này lập. Gán vai trò cho người dùng được xác thực, sử dụng sự kiện OnAuthenticate mô-đun xác thực (có mô-đun xác thực biểu mẫu trong ví dụ này) để tạo một đối tượng GenericPrincipal mới và gán thuộc tính người dùng của HttpContext. Mã sau đây minh hoạ này:

Mã Visual Basic .NET
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 IfEnd 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 dùng có vai trò cụ thể và hạn chế quyền truy cập tương ứng, sử dụng mã sau (hoặc tương tự) .aspx trang của bạn:

Mã Visual Basic .NET
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 thông tin, hãy bấm số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
306238 Làm thế nào để: Thực hiện vai trò bảo mật với xác thực dựa trên biểu mẫu 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ề vai trò bảo mật, hãy tham khảo chủ đề sau trong tài liệu Khuôn khổ .NET SDK:
Tham khảo
Thông tin về nguyên tắc bảo mật ASP.NET, xem hướng dẫn biểu mẫu chính MSDN sau đây:
Xác thực trong ASP.NET: hướng dẫn về bảo mật .NET
http://MSDN.Microsoft.com/en-US/Library/ms978378.aspx
Thông tin tổng quát hơn về ASP.NET, hãy nhóm tham chiếu tin MSDN sau đây: Để biết thêm thông tin, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
311094 LỖI: Thông báo lỗi "ConfigurationException" khi bị mạo danh đọc cấu hình tài khoản
306359 PRB: Request.ServerVariables("LOGON_USER") trả về chuỗi trố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: Mẫu yêu cầu xác thực không được dẫn đến loginUrl trang
Để biết thêm thông tin, hãy xem sách sau:
Reilly, Douglas J. Thiết kế ứng dụng Microsoft ASP.NET. Microsoft Press, 2001.

Esposito, Dino.Xây dựng giải pháp Web ASP.NET và ADO.NET. Microsoft Press, 2001.

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

ID Bài viết: 306590 - Xem lại Lần cuối: 05/24/2015 12:36:00 - Bản sửa đổi: 4.0

Microsoft ASP.NET 1.0, Microsoft ASP.NET 1.1

  • kbproductlink kbarttyperoadmap kbconfig kbinfo kbsecurity kbweb kbmt KB306590 KbMtvi
Phản hồi
>