asp.net-mvc-3 – 在ASP.NET MVC3中的自定义授权属性中使用操作
发布时间:2020-12-16 00:45:36 所属栏目:asp.Net 来源:网络整理
导读:我有一个控制器,只能在加载特定参数时才请求授权。就像参数ID为8时一样。 我想出了使用这样的自定义验证属性: public class MyAuthorizeAttribute : AuthorizeAttribute{ protected override bool AuthorizeCore(HttpContextBase httpContext) { if (/* Ac
|
我有一个控制器,只能在加载特定参数时才请求授权。就像参数ID为8时一样。
我想出了使用这样的自定义验证属性: public class MyAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (/* Action's inputparameter ID = 8 */)
{
return base.AuthorizeCore(httpContext);
}
return true;
}
}
我的行动看起来像这样(不是很有趣) [MyAuthorize]
public ActionResult Protected(int id)
{
/* custom logic for setting the viewmodel from the id parameter */
return View(viewmodel);
}
问题是您可以看到我不知道如何在authorize属性中检查该ID参数。 解决方法
如果id作为请求参数(GET或POST)或路由数据参数传递:
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
// first look at routedata then at request parameter:
var id = (httpContext.Request.RequestContext.RouteData.Values["id"] as string)
??
(httpContext.Request["id"] as string);
if (id == "8")
{
return base.AuthorizeCore(httpContext);
}
return true;
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net – 小数点后尾数为零
- asp.net-mvc – 如何在MVC6或AspNet Core或Ident
- asp.net-mvc-3 – MVC Razor – 在一年中的12个月
- 给微软的日志框架写一个基于委托的日志提供者
- asp.net-mvc – ASP.NET MVC IIS7 FireFox:尾部
- asp.net – 如何在RowDataBound事件的Gridview中
- winform批量更新数据_长时间的执行会导致界面卡死
- asp.net-mvc – ASP.NET MVC3 – 3层设计 – 事务
- asp.net-mvc – 在MVC中显示来自IMAGE对象的图像
- asp.net-mvc – MVC 3 RC中的Razor Helper
热点阅读
