跨站点授权不起作用

时间:2017-09-29 13:26:40

标签: asp.net-mvc angular asp.net-web-api

我在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?

1 个答案:

答案 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上对签名进行身份验证。