Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC身份验证_C#_Asp.net Mvc_.net 3.5_C# 3.0 - Fatal编程技术网

C# ASP.NET MVC身份验证

C# ASP.NET MVC身份验证,c#,asp.net-mvc,.net-3.5,c#-3.0,C#,Asp.net Mvc,.net 3.5,C# 3.0,是否可以创建类似ASP.NET MVC beta 1的东西 我试过了,但没有成功 override bool OnPreAction(string actionName, System.Reflection.MethodInfo methodInfo) 不再存在并且 override void OnActionExecuting(ActionExecutingContext filterContext) 不要让我访问你所指的博客文章中的动

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

我试过了,但没有成功

override bool OnPreAction(string actionName, 
                          System.Reflection.MethodInfo methodInfo)
不再存在并且

override void OnActionExecuting(ActionExecutingContext filterContext)

不要让我访问你所指的博客文章中的动作名称,作者声明

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

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

[Authorize(Roles="Admin, Editor")]
public ActionResult Delete(int id){
    (...)
}
由于Delete操作会改变系统的状态,因此我还要添加一个AcceptVerbs属性,如下所示:

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

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

在您所指的博客帖子中,作者声明

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

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

[Authorize(Roles="Admin, Editor")]
public ActionResult Delete(int id){
    (...)
}
由于Delete操作会改变系统的状态,因此我还要添加一个AcceptVerbs属性,如下所示:

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

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

不想用授权属性修饰操作的原因是什么?对不起,如果我想提供一个比已经给出的更好的答案,我想我必须更好地了解您的情况。

为什么不想用授权属性来修饰您的行为?对不起,如果我想提供一个比已经给出的更好的答案,我想我必须更好地理解你的情况