2015-06-03 44 views

Trả lời

19

Nếu bạn chỉ cần biết nếu đối tượng người dùng được xác thực, khách sạn này nên làm như lừa:

User.Identity.IsAuthenticated 

Nếu bạn cần phải ngăn chặn một hành động từ được gọi bởi một người dùng không được thẩm định, lớp thuộc tính sau hoạt động tốt.

public class BasicAuthAttribute : ActionFilterAttribute, IAuthenticationFilter 
{ 
    public void OnAuthentication(AuthenticationContext filterContext) 
    { 
    } 

    public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext) 
    { 
     var user = filterContext.HttpContext.User; 
     if (user == null || !user.Identity.IsAuthenticated) 
     { 
      filterContext.Result = new HttpUnauthorizedResult(); 
     } 
    } 
} 

Tôi sử dụng điều này trong lớp trình điều khiển cơ sở như sau.

[BasicAuth] 
public abstract class BaseAuthorizedController : Controller 
+0

có một [Duyệt] thuộc tính đã có trong khuôn khổ và bạn có thể thêm các thuộc tính như một toàn cầu mà không cần sử dụng một bộ điều khiển cơ sở như:. Opt.Filters.Add (AuthorizeFilter mới (AuthorizationPolicyBuilder mới() RequireAuthenticatedUser(). Xây dựng())); Ngoài ra còn có thuộc tính [AllowAnonymous] để bạn có thể có trong trang đăng nhập của mình chẳng hạn. –