我正在尝试在我的项目中实现继承 system.web.http.authorizeAttribute 的自定义授权属性我有一个 web api mvc 4 模板和一个带有 windows 身份验证的 mvc4 Internet 应用程序模板作为客户端。我在 web api 控制器中有一些方法,如果他点击具有自定义属性的按钮,我试图让发送请求的经过身份验证的用户无法访问这些方法,应该返回 401。而且如果他没有经过身份验证,客户不应该看到无权看到的东西
请帮助一些代码示例!
我正在尝试在我的项目中实现继承 system.web.http.authorizeAttribute 的自定义授权属性我有一个 web api mvc 4 模板和一个带有 windows 身份验证的 mvc4 Internet 应用程序模板作为客户端。我在 web api 控制器中有一些方法,如果他点击具有自定义属性的按钮,我试图让发送请求的经过身份验证的用户无法访问这些方法,应该返回 401。而且如果他没有经过身份验证,客户不应该看到无权看到的东西
请帮助一些代码示例!
要创建从 System.Web.Http.AuthorizeAttribute 派生的自定义 AuthorizeAttribute,您应该重写 IsAuthorized() 方法。这很简单,如下所示。
public class MyAuthorizeAttribute : AuthorizeAttribute
{
protected override bool IsAuthorized(HttpActionContext actionContext)
{
// Do some condition check here
// Return the result of the condition check
return isAuthenticated;
}
}
现在将[MyAuthorizeAttribute]
属性添加到您想要保护的方法。这将导致对这些方法的所有未经身份验证的请求返回 401。
更好的方法是添加[MyAuthorizeAttribute]
到控制器[AllowAnonymous]
中并为不需要身份验证的方法添加属性。