我正在使用 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(使用前将#替换为@)