授权属性的 MVC5 声明版本

2024-01-16

我正在使用 MVC5 和新的 OWIN 身份验证中间件尝试 VS2013 RC 中的一些新功能。

所以,我习惯使用[Authorize]属性来按角色限制操作,但我正在尝试使用基于声明/活动的授权,但我找不到它的等效属性。

我是否缺少一个明显的东西,或者我需要自己推出一个?我有点期待会有一个开箱即用的。

我正在寻找的具体内容是[Authorize("ClaimType","ClaimValue")]我想。

提前致谢。


我最终只编写了一个简单的属性来处理它。如果没有一堆额外的配置,我无法在框架中找到任何开箱即用的东西。下面列出。

public class ClaimsAuthorizeAttribute : AuthorizeAttribute
{
    private string claimType;
    private string claimValue;
    public ClaimsAuthorizeAttribute(string type, string value)
    {
        this.claimType = type;
        this.claimValue = value;
    }
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        var user = filterContext.HttpContext.User as ClaimsPrincipal;
        if (user != null && user.HasClaim(claimType, claimValue))
        {
            base.OnAuthorization(filterContext);
        }
        else
        {
            base.HandleUnauthorizedRequest(filterContext);
        }
    }
}

当然,如果您愿意以某种方式使用控制器-动作-动词三元组进行声明,则可以删除类型和值参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

授权属性的 MVC5 声明版本 的相关文章

随机推荐