在某些情况下,我无法让 Windows Identity Framework 写入 FedAuth cookie。我正在着手开发一套 MVC4 网站,这些网站已经使用 WIF 并成功地为自己的域编写了 FedAuth cookie。现在我正在尝试为我的套件中的每个域编写 cookie。
在我的开发机器上,我有三个由 IIS7.5 本地托管的网站(app1.mycompany.com、app2.mycompany.com 和 app3.DIFFDOMAIN.com)。当我登录 app1 时,我将 cookie 的域设置为“mycompany.com”,这意味着app1 和 app2都是联合的,但我找不到包含 app3 的好方法。
FederatedAuthentication.SessionAuthenticationModule
.CookieHandler.Domain = "mycompany.com".
到目前为止我注意到/尝试过的事情:
在 app1 中,我可以设置 Domain = "app1.mycompany.com" 或 "mycompany.com" 并写入 cookie,但如果我将其设置为其他任何内容,则不会写入 cookie,因此必须对域进行一些底层验证写入 cookie 时的属性。真的吗??
我在 app3 中编写了一个 API 服务,以便从
https://app3.DIFFDOMAIN.com/fedauth
设置 Domain = "DIFFDOMAIN.com" 的 app1(例如)调用。- 当我从浏览器调用 api 时,cookie 被写入。
- 当我使用休息客户端从 app1 调用 api 时,cookie没有被写入。
- 当我从 app1 RedirectPermanent 到 app3 url 时,cookie 被写入(但我真的不想重定向)。
所以我想我在问为什么在使用休息客户端时没有写入 cookie,以及我应该如何在所有域上联合身份验证?
谢谢,
约翰。