gpt4 book ai didi

asp.net-mvc - 授权属性的 MVC5 声明版本

转载 作者:行者123 更新时间:2023-12-03 05:18:29 26 4
gpt4 key购买 nike

我正在使用 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);
}
}
}

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

关于asp.net-mvc - 授权属性的 MVC5 声明版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19363809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com