【问题标题】:Asp.net share forms authentication by two applications in the same domainAsp.net 由同一域中的两个应用程序共享表单身份验证
【发布时间】:2015-03-04 02:08:00
【问题描述】:

我在同一个域中有两个应用程序:mydomain/app1 和 mydomain/app2,我需要在它们之间共享身份验证。一个应用在 Asp.Net WebForms 中,第二个使用 WebApi2。

我配置 web.config 如下:

应用1:

<authentication mode="Forms">
  <forms loginUrl="/Login.aspx" defaultUrl="/Default.aspx" name=".ASPXFORMSAUTH" protection="All" cookieless="UseDeviceProfile" slidingExpiration="true" path="/" domain="mydomain" requireSSL="false" timeout="60" enableCrossAppRedirects="false">
  </forms>
</authentication>
<authorization>
  <deny users="?" />
  <allow users="*"/>
</authorization>
<machineKey validationKey="generated key1" decryptionKey="generated key2" validation="SHA1"/>

应用程序2:

<authentication mode="Forms">
  <forms loginUrl="/index.html" defaultUrl="/index.html" name=".ASPXFORMSAUTH" protection="All" cookieless="UseDeviceProfile" slidingExpiration="true" path="/" domain="mydomain" requireSSL="false" timeout="60" enableCrossAppRedirects="false">
  </forms>
</authentication>
<authorization>
  <deny users="?" />
  <allow users="*"/>
</authorization>
<machineKey validationKey="generated key1" decryptionKey="generated key2" validation="SHA1"/>

我正在登录 app1 并观察 cookie 内容。 然后我在另一个浏览器选项卡中从 app2 请求一个 URL。第二个选项卡中的 cookie(名称和内容)与第一个选项卡中的相同。 我希望来自第二个选项卡的请求由 app2 进行身份验证,因为 cookie 已由 app1 进行身份验证。 然而,这并没有发生,我被重定向到 app2 的登录页面。

【问题讨论】:

  • 可能的原因之一是两台服务器上的 .NET 版本不同(2 对 4)或架构不同(32 位对 64 位)。
  • 它们在同一台服务器上,但不同的 .NET Framework(4 和 4.5)
  • 就是这样。他们在 4 和 4.5 之间更改了加密。您可以通过在您的机器密钥配置节点social.microsoft.com/Forums/en-US/… 中添加属性来使两者在同一个 .net 下运行或打开 4.5 站点的兼容性
  • 是的,你是对的。请发表喜欢的答案(不喜欢评论)以投票。

标签: asp.net authentication cookies subdomain forms-authentication


【解决方案1】:

按照 OP 的建议,这是在这种情况下有效的答案。

他们在 4 和 4.5 之间更改了 cookie 加密。您可以使两者在同一个 .net 下运行,或者通过向您的机器密钥配置节点添加属性来打开 4.5 站点的兼容性。

https://social.microsoft.com/Forums/en-US/1791c5e3-4087-4e92-a460-51c5c4221f49/any-forms-auth-changes-in-45?forum=Offtopic

【讨论】:

  • 这解决了我的问题,谢谢。您介意我将节点属性添加到您的答案中以使其更容易吗?
  • @DaniDev:随意,问候。
猜你喜欢
  • 1970-01-01
  • 2018-01-28
  • 1970-01-01
  • 1970-01-01
  • 2011-05-01
  • 1970-01-01
  • 2013-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多