繁体   English   中英

ASP.NET通过同一域中的两个应用程序共享表单身份验证

[英]Asp.net share forms authentication by two applications in the same domain

我在同一个域中有两个应用程序: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的登录页面。

正如OP所建议的,这是在这种情况下有效的答案。

他们已将Cookie加密更改为4至4.5。 您可以使两者都在同一个.net下运行,也可以通过将属性添加到计算机密钥配置节点来打开4.5站点上的兼容性。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM