我正在使用ASP.NET4和MVC3。我想将我的网站配置为以下列方式使用表单身份验证:
如何在我的web.config文件中配置它?当用户点击根URL(/)时,我当前的配置总是进入登录页面,但不应该。如果用户尝试访问/ paidServices网址,它应该只进入登录页面。
我的配置如下:
<configuration>
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" path="/" timeout="2880" />
</authentication>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
<location path="~/paidServices">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
... etc ...
</configuration>
我做错了什么?事实上,我使用ASP.NET MVC使这更复杂吗?
答案 0 :(得分:2)
最好在MVC中使用Authorize属性。这些可以应用于整个控制器或仅应用于单个控制器操作。
例如:
[Authorize]
public class paidServicesController
{
....
答案 1 :(得分:1)
误报。配置问题是正确的。我在MVC路由配置中省略了一个URL,因此默认URL(/)转到安全部分,Logon表单按预期显示。
Phil Haack的Route Debugger帮助查明了问题:http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx