Ben*_*ter 2 .net c# asp.net-mvc
作为一个理论练习,帮助我学习与MVC相关的成员模型的细节,我想弄清楚我是否可以从外部资源加载权限,为了我的原型,我有一个平面文件,像这样的列表:
Controller1,Method1,Get,Anonymous
Controller1,Method1,Post,User,Administrator
Controller2,Method1,Get,Administrator
Controller2,Method1,Post,Administrator
Controller2,Method2,Get,User,Editor,Administrator
Controller2,Method2,Post,Editor,Administrator
Run Code Online (Sandbox Code Playgroud)
我可以使用正则表达式解析,以便为我提供一个对每个控制器/动作/动词组合具有权限的角色列表.
我有我的控制器动作:
[CustomAuthorize]
public ActionResult Index()
{
/* Do stuff */
}
Run Code Online (Sandbox Code Playgroud)
我也有我的自定义授权组件:
public class CustomAuthorize : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
/* How do I access which Controller/Action/Verb fired this? */
}
}
Run Code Online (Sandbox Code Playgroud)
为了能够在运行中确定哪些角色可以访问此控制器/动作/动词,我需要能够确定哪个控制器/动作/动词称为CustomAuthorize属性.
我知道我可以像这样向我的类添加属性:
public class CustomAuthorize : AuthorizeAttribute
{
public string Controller { get; set; }
public string Action { get; set; }
public string Verb { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后调用我的属性:
[CustomAuthorize(Controller="Home",Action="Index",Verb="Get")]
public ActionResult Index()
{
}
Run Code Online (Sandbox Code Playgroud)
但这似乎是一个维持头痛的问题.如果我可以使用[Authorize]并让我的CustomAuthorize.AuthorizeCore方法确定哪个控制器/动作/动词在AuthorizeCore方法中引用它,那将是很好的.
这可能吗?如果是这样,有人能指出我正确的信息方向,我将如何实现这一目标?
| 归档时间: |
|
| 查看次数: |
4168 次 |
| 最近记录: |