我在ASP.NET MVC应用程序中使用表单身份验证。我想要授权过程中的注册页面。我知道我可以在我的主web.config文件中添加位置标记,或者在特定文件夹中创建一个新的web.config。但我只想在用户控制器中排除一个特定的操作。我该怎么做?
答案 0 :(得分:4)
不要使用Web.config< location> MVC应用程序中的授权。这样做会导致网站出现安全漏洞。
而是使用[Authorize]属性来控制谁有权访问某些控制器或操作。 (如果要将控制器的类型应用于该控制器中的所有操作,可以使用控制器类型的[授权]属性。)
更多信息:
答案 1 :(得分:2)
它增加了从动作中排除控制器级过滤器的功能。
[ExcludeFilter(typeof(AuthorizeAttribute)]
public ActionMethod DontAuthorize.....
更容易!
答案 2 :(得分:1)
你也可以创建自己的AllowWithoutAuthorisation属性并用它装饰ActionResult。
修改强> 这有点未经测试,但你不能这样做;
[Authorize(Users="*")]
编辑2
或者您可以使用[授权]装饰每个ActionResult,并省略您不想授权的那个。
答案 3 :(得分:0)
好的,我知道了。
我所做的是,我为该操作创建了一个单独的控制器,并在我的web.config中添加了一个位置元素,以允许匿名访问该操作。
这将允许所有访问该控制器而无需身份验证。
答案 4 :(得分:0)
将 [AllowAnonymous] 属性添加到方法(由 Jeremy 推荐)也对我有用。