【发布时间】:2015-09-18 17:47:42
【问题描述】:
我有这个自定义属性(自定义 MVC 授权):
public class CustomAuthorizeAttribute : AuthorizationFilterAttribute
{
public string Users { get; set; } //its always null!
public override void OnAuthorization(HttpActionContext actionContext)
{
string user = Thread.CurrentPrincipal.Identity.Name.Split('\\')[1];
AdProxy AdProxy = new AdProxy();
if (!AdProxy.IsUserInGroup(user, Users))
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
}
}
}
我是这样使用的:
[CustomAuthorizeAttribute(Users = "Admin")]
但在调试时“用户”的值始终为空。 有什么想法吗?
【问题讨论】:
-
首先我认为您忘记了您班级中的用户不是base.Users。可能您缺少带有 optional parameter 的构造函数,它覆盖了 base.Users 属性,或者只是通过您的父构造函数填充它。
-
什么意思?你能写 ctor plz 吗?根据这个链接:dotnet-tricks.com/Tutorial/mvc/…我不用添加ctor和填充参数
标签: c# asp.net asp.net-mvc custom-attributes