我在一台服务器上托管了两个ASP.NET应用程序.他们的配置具有相同的machineKey值,身份验证部分如下所示:
<authentication mode="Forms"> <forms loginUrl="/_login/default.aspx" name=".MySingleAuth" /> </authentication> <authentication mode="Forms"> <forms loginUrl="~/MySingle/logon/0" timeout="2880" name=".MySingleAuth"/> </authentication>
单点登录(使用一个cookie的两个应用程序中的身份验证)仍然不起作用.我错过了什么?
编辑:这两个应用程序在我们的内部网上,一个在https://ip:84下,另一个在https://ip:86下(其中ip是IP).
解决方法
对我来说,SingleSignOn的以下配置有效:
<machineKey validationKey="818B77A6AFBF5E0B82B7FBE6F992E1733986DAEF81D1EB107B55D6F68EB6FEC6097349A9E37A407A6B5CF2FA1AB9327CA182A2C999A768C14B146036420203F9" decryptionKey="45798D54477D1D11BFC16733786AABB50E7FD5DDB3F8F46A" validation="SHA1" /> <authentication mode="Forms"> <forms name=".ASPXAUTH" loginUrl="~/Login.aspx" protection="All" cookieless="UseCookies" enableCrossAppRedirects="true"/> </authentication>
>确保两个应用程序上的密钥完全相同(验证和解密)
> Cookie名称必须相同
> SingleSignOn仅在您位于同一域(Cookie)时才起作用.
阅读本页,它帮助了我:http://www.codeproject.com/KB/aspnet/SingleSignon.aspx