我在http://localhost:60455上托管了一个使用ASP.NET MVC创建的Web应用程序,以及使用ASP.NET Web API + Angular4创建的http://localhost:52775上托管的另一个Web应用程序。
用户使用WebForm身份验证和Cookie登录http://localhost:60455,之后用户可以移至http://localhost:52775进行操作并返回。此时用户未获得授权。 为什么http://localhost:60455不使用早期设置的Cookie?
答案 0 :(得分:0)
如果2个站点在同一台计算机上运行,但在生产环境中,它将无法正常运行,本地应工作。
不允许令牌从系统1传递到2。
原因是2个站点将使用自己的MachineKey对令牌进行签名。
这可以在每个站点的web.config中明确设置,以允许令牌在站点之间传递,但是有点工作(我之前没有亲自完成):
<configuration>
<system.web>
<machineKey decryptionKey="Decryption key goes here,IsolateApps"
validationKey="Validation key goes here,IsolateApps" />
</system.web>
</configuration>
或者,您可以选择无状态方式来验证从站点A到B的请求。在执行任何操作之前,将对站点A的每个请求进行签名并在站点B上对签名进行身份验证。