Ủy quyền lớp thuộc tính theo mặc định lấy httpcontext làm đối số. khi được gọi. Sau đó nó kiểm tra giá trị bool HttpContext.User.Identity.IsAuthenticated bool và hành động tương ứng. Điều này chỉ hoạt động nếu bạn sử dụng Xác thực mẫu. Nếu bạn đang sử dụng logic đăng nhập của riêng bạn (ví dụ trong đối tượng phiên), bạn có thể lấy được một lớp từ Authorize Attribute và gọi nó.
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class MyAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
clsSession sess = httpContext.Session["Current"] as clsSession;
if (sess.IsLogin) return true;
return false;
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new ViewResult { ViewName = "Unauthorized" };
}
}
Sau đó, bạn có thể sử dụng lớp này như thế này:
[MyAuthorize]
public ActionResult Index()
{
return View();
}
này sẽ làm việc. Bạn có thể sử dụng [MyAuthorize] thay vì [Authorize] trong tất cả các thao tác điều khiển. Nếu nó trả về false, nó sẽ trả về một view (trong trường hợp này là "Unauthorized"). Tên chế độ xem có thể là bất kỳ thứ gì và có thể được đặt trong thư mục lượt xem/chia sẻ.
Nguồn
2013-04-25 16:17:51
Cảm ơn rất nhiều. Tài nguyên tuyệt vời! – Jose3d