【发布时间】:2015-06-08 18:59:21
【问题描述】:
对于 WebForms,我在表单身份验证方面没有问题,但它在 MVC 5 中让我很痛苦
将Secure添加到区域,然后登陆和登录
在主 web.config 文件中在 system.web 下添加了这个(也有类似~/Secure/Login 的变体)
<authentication mode="Forms">
<forms loginUrl="Secure/Login" />
</authentication>
和子 web.config 文件(在安全下)这个(抱歉缩进不起作用所以使用代码 sn-p)
<location path="">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
<location path="Login">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
但由于某种原因它不起作用。
【问题讨论】:
-
Microsoft 的官方回应是您无法通过 web.config 保护 MVC 应用程序。您必须授权属性或其他 AuthenticationFilters。 weblogs.asp.net/jongalloway/…
-
我更关心找到重定向到登录页面的方法 - 我可以在控制器的类上方添加
但我不希望用户点击401.0 -
如果您从配置中删除授权部分,并按照我参考的文章中的建议,您不会有问题。
-
埃里克 - 感谢您的链接。实际问题是 Startup.Auth。现在添加路径会将
发送到登录页面。我注意到(从您的链接)我可以从帐户控制器配置 - 问题 - 这应该从主要的完成,还是我应该在该区域下为该区域创建另一个?感谢您的回复 -
您使用 AllowAnonymous 属性来覆盖全局过滤器中的 Authorize 属性,这在我链接的文章中有记录
标签: asp.net-mvc forms-authentication