http://www.cnblogs.com/think8848/archive/2011/07/08/2100814.html
在ASP.NET中使用 <authentication mode="Forms">时,如果在forms配置节中,没有指定loginUrl,那么根据MSDN上的说法,默认值是login.aspx,在指定loginUrl时,就使用指定的Url登录,这一直都没有问题,前几天做了一个用户登录的系统,指定了loginUrl值为:"~/Account/LogOn",登录一切正常,过了几天没再动这个项目,今天在登录时发现一个问题,在登录时发生404错误,这个令我莫名诧异,仔细一看Url,发现居然不知啥时候登录Url变成Account/Login了,于是仔细检查配置:
<authentication mode="Forms"> <forms name="SSO" loginUrl="~/Account/LogOn" protection="All" slidingExpiration="true" path="/" timeout="2880" /> </authentication>
<authorization> <deny users="?"/> </authorization>
<authorization> <deny users="?"/> </authorization>
没发现啥问题啊,重新建一个新的MVC项目,发现能到达Account/LogOn,这可就太奇怪了,经过一番折腾,终于找到一个解决方案:
<appSettings> <add key="enableSimpleMembership" value="false" /> </appSettings>
在web.config中添加以上一个配置就又回到Account/LogOn了,不难从字面上看出这两个配置的用途,只是为什么其他的项目就能到达Account/LogOn,而这一个项目就不行呢?而且之前是好好的呢,现在等着用,就先这样用着,深层的原因再慢慢查吧。