0

我正在尝试在我的项目中实现继承 system.web.http.authorizeAttribute 的自定义授权属性我有一个 web api mvc 4 模板和一个带有 windows 身份验证的 mvc4 Internet 应用程序模板作为客户端。我在 web api 控制器中有一些方法,如果他点击具有自定义属性的按钮,我试图让发送请求的经过身份验证的用户无法访问这些方法,应该返回 401。而且如果他没有经过身份验证,客户不应该看到无权看到的东西

请帮助一些代码示例!

4

1 回答 1

2

要创建从 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]中并为不需要身份验证的方法添加属性。

于 2013-04-14T03:45:13.923 回答