在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>

没发现啥问题啊,重新建一个新的MVC项目,发现能到达Account/LogOn,这可就太奇怪了,经过一番折腾,终于找到一个解决方案:

<appSettings>
<add key="enableSimpleMembership" value="false" />
</appSettings>

在web.config中添加以上一个配置就又回到Account/LogOn了,不难从字面上看出这两个配置的用途,只是为什么其他的项目就能到达Account/LogOn,而这一个项目就不行呢?而且之前是好好的呢,现在等着用,就先这样用着,深层的原因再慢慢查吧。

posted on 2011-07-08 11:24  think8848  阅读(3002)  评论(2编辑  收藏  举报