我对 MVC 很陌生,这是我第一次尝试使用它创建一个站点,并且是简单的成员。我正在处理的要求是需要同时使用角色和权限。
所以我需要一个额外的授权方法,就像角色一样工作。所以例如,我需要这个工作:[AuthorizeUser(Permission = "Browse")]
我找到了多个创建自定义授权属性的示例,但到目前为止,没有一个对我真正有用。传递的值会丢失,并且我不断收到空值异常。
我发现了多个类似的问题,但我找到的代码对我不起作用。下面是我根据各种 stackoverflow 问题中的代码尝试过的示例。
public class AuthorizeUser : AuthorizeAttribute
{
public string AccessLevel { get; set; }
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var isAuthorized = base.AuthorizeCore(httpContext);
if (!isAuthorized)
{
return false;
}
// My method to get permisions
userPermissions=getpermsions();
if (userPermissions.Contains(this.Permission))//**** problem line
{
return true;
}
else
{
return false;
}
}
}
问题是这一行: if (userPermissions.Contains(this.Permission))
this.Permission 始终为空。我已经尝试了多种变体,它始终为空。
我可以使用其他一些替代方法,但是这行不通让我发疯。似乎应该如此。