在ASP.NET中单点登录 - cookie名称,machineKey还有什么?

时间:2010-11-30 09:04:41

标签: asp.net single-sign-on

我在一台服务器上托管了两个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的两个应用程序中的身份验证)仍然无效。我错过了什么?

编辑:这两个应用程序位于我们的Intranet上,一个位于https://ip:84下,另一个位于https://ip:86下(其中ip是IP)。

1 个答案:

答案 0 :(得分:9)

对我来说,SingleSignOn的以下配置有效:

<machineKey
  validationKey="818B77A6AFBF5E0B82B7FBE6F992E1733986DAEF81D1EB107B55D6F68EB6FEC6097349A9E37A407A6B5CF2FA1AB9327CA182A2C999A768C14B146036420203F9"
  decryptionKey="45798D54477D1D11BFC16733786AABB50E7FD5DDB3F8F46A"
  validation="SHA1"
/>

<authentication mode="Forms">
  <forms name=".ASPXAUTH" loginUrl="~/Login.aspx" protection="All" cookieless="UseCookies" enableCrossAppRedirects="true"/>
</authentication>
  1. 确保两个应用程序上的密钥完全相同(验证和解密)
  2. Cookie名称必须相同
  3. SingleSignOn仅在您位于同一域(Cookie)时才有效。
  4. 阅读此页面,它帮助了我:http://www.codeproject.com/KB/aspnet/SingleSignon.aspx