【问题标题】:ASP.NET MVC AuthenticateASP.NET MVC 身份验证
【发布时间】:2010-09-24 00:15:04
【问题描述】:

是否可以创建类似this i ASP.NET MVC beta 1 的东西

我试过了,但是

override bool OnPreAction(string actionName, 
                          System.Reflection.MethodInfo methodInfo)

不再存在并且

override void OnActionExecuting(ActionExecutingContext filterContext)

不要让我访问操作名称

【问题讨论】:

    标签: c# asp.net-mvc .net-3.5 c#-3.0


    【解决方案1】:

    在您所指的博文中,作者指出

    解决此问题的一种方法是使用本文所示的基于属性的安全性。但是你将不得不用安全属性来装饰你的动作,这不是一个好主意。

    我认为这是一个非常好的方法,它得到了框架的支持。它会给你一个很好的声明式实现。查看 System.Web.Mvc 中的 AuthorizeAttribute。它将允许您执行以下操作:

    [Authorize(Roles="Admin, Editor")]
    public ActionResult Delete(int id){
        (...)
    }
    

    由于 Delete 操作会改变系统的状态,我还将添加一个 AcceptVerbs 属性,如下所示:

    [AcceptVerbs(HttpVerbs.Post)]
    [Authorize(Roles="Admin, Editor")]
    public ActionResult Delete(int id){
        (...)
    }
    

    这将确保该操作不会接受 GET 请求。

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        不想用授权属性装饰您的操作的原因是什么?抱歉,但如果我要尝试提供比已经给出的答案更好的答案,我想我必须更好地了解你的情况。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-09-17
          • 1970-01-01
          • 1970-01-01
          • 2014-01-02
          • 2014-05-03
          • 2011-10-02
          • 2017-08-24
          • 1970-01-01
          相关资源
          最近更新 更多