ASP.NET MVC Authenticate

Nes*_*zer 1 c# asp.net-mvc .net-3.5 c#-3.0

是否有可能创建类似这样的 ASP.NET MVC beta 1

我试过但是

override bool OnPreAction(string actionName, 
                          System.Reflection.MethodInfo methodInfo)
Run Code Online (Sandbox Code Playgroud)

不再存在了

override void OnActionExecuting(ActionExecutingContext filterContext)
Run Code Online (Sandbox Code Playgroud)

不要让我访问动作名称

Run*_*une 5

在你所指的博客中,作者说明了这一点

解决此问题的一种方法是使用此帖子中显示的基于属性的安全性.但是你必须使用安全属性来装饰你的行为,这不是一个好主意.

我认为这是一个非常好的方式,它得到了框架的支持.它将为您提供一个很好的声明性实现.查看System.Web.Mvc中的AuthorizeAttribute.它允许你做这样的事情:

[Authorize(Roles="Admin, Editor")]
public ActionResult Delete(int id){
    (...)
}
Run Code Online (Sandbox Code Playgroud)

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

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

这将确保操作不接受GET请求.