高分求助2.0的跨域名共享登陆信息(SSO)
实现跨域名D单点登陆,passport.c3.cn www.c3.cn
实现方法:
两个域名对应的站点采用了同样的webconfig配置,同样的machineKey,validationKey,decryptionKey,form设置
如下:
<authentication mode="Forms">
<forms loginUrl="login.aspx" name=".ASPXAUTH" path="/" protection="All" domain=".c3.cn"></forms>
</authentication>
<machineKey
validationKey="C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
decryptionKey="8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
decryption="3DES"
validation="SHA1" />
<membership>
<providers>
<remove name="AspNetSqlMembershipProvider" />
<add connectionStringName="stateConnectionString" enablePasswordRetrieval="false"
enablePasswordReset="true" requiresQuestionAndAnswer="false"
applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="3"
minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
passwordStrengthRegularExpression="" name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</membership>
按照MSDN文档的说法,应该能实现了。现在我遇到的问题是:
1. 采用上面的配置后,注册用户成功后,帐户正确产生,但不能处于登陆状态!
2. 登陆后没有任何提示信息,直接返回登陆前的页面(这样看应该是登陆状态了),但User票证没有产生,LoginStatus显示未登陆状态,LoginName不能正确读出用户
3. 最奇怪的是:我换用FireFox浏览器(1.5.0.4),一切正常!正确登陆,正确SSO!
我的开发环境:Win2003 iis6,ie6,vs 2005,.net framework:2.0.50727
查N多MSDN文档和网上资料未果,请指教!