我在同一个域中有两个应用程序:mydomain/app1和mydomain/app 2,我需要在它们之间共享身份验证。一个应用程序在Asp.NetWebForms中,第二个应用程序使用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的登录页面。