asp.net-mvc – 获取ActionName,ControllerName和AreaName,并将其传递给Act
发布时间:2020-05-23 07:32:15 所属栏目:asp.Net 来源:互联网
导读:我使用自定义AuthorizationFilter如下: public class ActionAuthorizeAttribute : AuthorizeAttribute {protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext) { if(!httpContext.User
|
我使用自定义AuthorizationFilter如下: public class ActionAuthorizeAttribute : AuthorizeAttribute {
protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext) {
if(!httpContext.User.Identity.IsAuthenticated)
return false;
if(IsUserExcluded())
return false;
else
return IsRoleAuthorize(httpContext);
}
}
我使用这个过滤器在我拥有的每个动作的顶部,并为检查是授权,需要动作名称,控制器名称和区域名称。所以有什么办法得到这个名称在AuthorizeCore()方法,如使用System.Web.HttpContextBase?如果回答是否,那么如何获得这个名称并将其传递给属性,显然我不想手动添加每个名称,实际上是在控制器中的likeViewContext.RouteData.Values [“控制器” [ActionAuthorize(actionName=Action,controller=ControllerName,area=AreaName)]
public ActionResult Index() {
return View();
}
有人有什么想法吗? 解决方法您可以从RouteData中获取它们:protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext)
{
var rd = httpContext.Request.RequestContext.RouteData;
string currentAction = rd.GetRequiredString("action");
string currentController = rd.GetRequiredString("controller");
string currentArea = rd.Values["area"] as string;
...
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 根据自己的主机Web API Windows服务验证HTTP .N
- asp.net – “viewstate MAC的验证失败.如果这个应用程序由
- asp.net – 调用en外部javascript文件的函数
- asp.net-mvc-3 – ASP.NET MVC 3.0 Razor,从任何地方开始加
- asp.net – 在javascript中读取cookie
- asp.net-mvc – 什么可以导致ViewData.ModelState.IsValid变
- asp.net-core – VSTS – 构建ASP.NET Core 2.0应用程序失败
- asp.net-mvc – ASP.Net MVC:发送JSON到控制器
- asp.net – 信用卡的前四个号码多久更改一次?
- 没有密码的Asp.net Memebership授权
推荐文章
站长推荐
热点阅读
