MVC3 web.config是否允许对各个控制器进行身份验证?

时间:2011-12-07 17:02:08

标签: asp.net-mvc-3 authentication web-config

我见过如

<location path="~/SomeController">
   <system.web>
     <authorization>
       <allow users="?"/>
     </authorization>
   </system.web>
</location>

我将此部分放在具有身份验证的部分之后。这似乎不起作用。它仍然要求登录。

我错过了什么吗?我真的很陌生,所以如果这是非常基本的东西我道歉。

3 个答案:

答案 0 :(得分:3)

您确实不应该使用web.config来控制应用程序的身份验证。

使用您要保护的控制器上的Authorize属性,并将其保留在不支持的控制器上。

有关详细信息,请参阅此blog post

答案 1 :(得分:2)

实际上,您可以在控制器本身的控制器上进行身份验证。

您可以在方法上设置身份验证:

 [Authorize(Roles = "Admin")]
 public ActionResult Index()
 { .... }

或者您可以在控制器上进行设置:

 [Authorize(Roles = "Admin, SuperUser")]
 public class HomeController : Controller
 {  ... }

希望这对你有所帮助。

答案 2 :(得分:1)

您是否需要将?更改为*?另外,请确保更改根级web.config文件。

http://msdn.microsoft.com/en-us/library/8d82143t.aspx