表单身份验证ASP.Net失败

时间:2011-03-30 11:23:39

标签: asp.net forms authentication

拥有一个使用表单身份验证的门户 LoginUrl = Login.aspx DefaultUrl = Default.aspx

用户凭据在db ...所以在登录期间,我们获得所有用户凭据 - 所以我们到达db,用户通过身份验证(Fidler显示http 302为default.aspx),重定向到deault.aspx并返回登录页面再次,因为我们没有认证,但我们做了!!!!

项目中有4台机器 - 3台工作正常 - 我的 - 不是!比较所有数据 - 我有相同的网络配置,iis设置等

它可能是什么?

由于

3 个答案:

答案 0 :(得分:0)

如果您有Web场,则需要确保服务器场中的所有服务器共享相同的machineKey,因为如果您已自动生成并且不同的计算机密钥,则可能无法正确解密身份验证票证。

答案 1 :(得分:0)

您是否在web.config文件中的forms element上设置了域名?如果是这样,请求URL必须在域或表单身份验证中才会起作用。 Localhost也不会工作。

如果您正在开发系统上进行测试,则可能需要将完全限定的域名添加到hosts文件([SystemDrive]:\ Windows \ System32 \ Drivers \ Etc \ hosts)。

答案 2 :(得分:0)

所以,我解决了问题......原因 - 我的疏忽......

所以,我再次使用fiddler分析我的请求/回复......所以, 1)转到默认 2)重定向到登录并输入登录密码 3)用户在db-FormAuthentication中创建了发现的票证 4)重定向到默认值 5)用户未经过身份验证并返回登录页面....

所以Fiddler表示在第3步创建了cookie并且调试显示用户已经过身份验证。但没有cookie传递给Dfeault页面。 我发现登录页面的cookie有“安全”标记。这意味着我在webconfig中有requireSSL = true属性...但是requireSSL默认值为false ...所以,有些东西会覆盖它...我在顶级文件夹中找到了另一个配置文件,其中requireSSL = true ...当我删除顶级配置文件 - 一切都开始工作正常......

肯定会错过某些标准情况......但是我第一次看到的这种有趣的效果 - 在重定向到默认页面时进行身份验证及其中断 - 可能有助于某人节省他/她的时间...... / p>

但无论如何 - 感谢人们回答我的问题:)