Enter your keyword

Menu

Recent

Authentication và Authorize trong ASP.NET MVC


Một trong những cơ chế bảo mật cơ bản nhất là bảo đảm những người dùng truy cập hợp lệ vào hệ thống website. Thông thường bạn phải yêu cầu người dùng đăng nhập trước khi cấp quyền truy cập vào những trang nội dung bị hạn chế quyền. Ngoài ra còn một số trường hợp bạn còn tiếp tục hạn chế quyền truy cập nội dung cho một số đối tường truy cập cụ thể hay các thành viên có vai trò cụ thể trong một hệ thống. Để hạn chế quyền truy cập vào một view ASP.NET MVC, bạn hạn chế truy cập vào các Action ,Views ASP.NET MVC cung cấp lớp AuthorizeAttribute.

Authentication: Là quá trình xác định và xác nhận danh tính của một khách truy cập vào một ứng dụng. Nói đơn giản hơn, nó xác định thông tin người dùng cuối khi truy cập vào trang web. ASP.NET hỗ trợ nhiều cách để xác thực người sử dụng trình duyệt. Đối với các ứng dụng web Internet, các phương pháp xác thực phổ biến nhất được sử dụng được gọi là “Forms Authentication”.

"Forms Authentication" cho phép ta tạo một hình thức đăng nhập HTML trên trang web, sau đó xác nhận tên người dùng / mật khẩu sau đó gửi yêu cầu lên server. Server sẽ kiểm tra tên đăng nhập và mật khẩu trong database nếu chính xác thì có thể yêu cầu ASP.NET cấp phát Cookie được mã hóa để xác định người sử dụng trên các yêu cầu trong tương lai.
AuthorizationLà quá trình xác định xem một người dùng có quyền truy cập một URL / tài nguyên cụ thể hoặc để thực hiện một số hành động hay không

Sử dụng AuthorizeAttribute

Namespace:  System.Web.Mvc Assembly:  System.Web.Mvc (in System.Web.Mvc.dll)

+ Khi đánh dấu một Action với AuthorizeAttribute, truy cập vào Action đó bị giới hạn .
+ Nếu bạn đánh dấu Controller thì tất cả các Action trong bộ điều khiển bị hạn chế.
Trong vòng một bộ Controller được đánh dấu bằng các thuộc tính AuthorizeAttribute, bạn có thể sử dụng các thuộc tính AllowAnonymousAttribute để xác định rằng một phương pháp hành động cụ thể được không giới hạn cho người dùng chỉ được phép.

[Authorize] 
public class AccountController : Controller
{
    public AccountController () { . . . }
    
    [AllowAnonymous]
    public ActionResult Register() { . . . }

    public ActionResult Manage() { . . . }

    public ActionResult LogOff() { . . . }
. . .
} 
+ Bạn có thể sử dụng các Roles và Users để xác định vai trò hoặc người dùng được phép truy cập vào các Action,Method.
Ví dụ như dưới đây chỉ cho phép người dùng có quyền Admin:
[Authorize(Roles="Administrators")]
public class AdminController : Controller
{
    . . .
}
Hay chỉ cho phép người dùng được chỉ định
[Authorize(Users="Alice,Bob")]
public class RestrictedContentController : Controller
{
    . . .
}
Nếu một người sử dụng trái phép truy cập vào Action được đánh dấu bằng các thuộc tính Authorize, thì MVC trả về một mã trạng thái HTTP 401. Nếu các trang web được cấu hình để sử dụng các hình thức xác thực ASP.NET, mã trạng thái 401 làm cho trình duyệt để chuyển hướng người dùng đến trang đăng nhập. Hoặc ta có thể cấu hình về các trang mà ta mong muốn trong webconfig (ta để dưới thẻ   <system.web>) :
<authenticationmode="Forms">
 <forms loginUrl="~/Account/Login"timeout="2880"/>
</authentication>
Trong đó ~/Account/Login chính là đường dẫn về trang mà ta mong muốn.
Vậy là xong,mọi thắc mắc vui lòng comment bên dưới, chúc các bạn thành công.

Authentication và Authorize trong ASP.NET MVC Authentication và Authorize trong ASP.NET MVC Reviewed by Duy Nguyễn on 12/30/2017 Rating: 5

Không có nhận xét nào: