症状描述:
使用Form验证,在Page1.aspx中摆放了Login控件,在Page2.aspx中摆放了LogInView,LogInName控件,已确认MembershipProvider可以正常工作,Login控件的验证也正确,但是跳转到Page2.aspx后,FormsAuthenticationCookie没有生成,也就是LogInView和LoginName没有任何值,查看HttpContext.User可是空值。
分析:
原因出在Web.Config中,在设置form信息时,多添加了一个domain属性,domian="www.nbcc.cn",这样的话讲Cookie放于www.nbcc.cn服务器上,而不是我的测试服务器(local),当然就无法获得相应数据了
解决方法:
去除该属性设置即可
<authentication>
<forms name=".ASPXAUTH"
loginUrl="Login.aspx"
requireSSL="false"
slidingExpiration="true"
timeout="20"
protection="All"
cookieless="UseDeviceProfile"
defaultUrl="Default.aspx"
path="/"
enableCrossAppRedirects="false"
domain="www.nbcc.cn"
/>
</authentication>