当我开始探索 WIF 时,我对以下内容有疑问:
在 Windows Identity Foundation[WIF] 中,查看安全 token 服务[STS],我想知道联合身份验证 token 保存在哪里?
我认为它在浏览器 cookie 中,如果是的话,有人可以给我一个关于它的见解吗?
最佳答案
我使用“Fiddler”Web 调试器来找到这个问题的答案。发生的情况如下:假设您的应用程序的名称是 SecureApp
,STS 的名称是 SecurePortal
。
当您将浏览器指向 SecureApp
时,发生的第一件事是它会检查您是否已通过身份验证。如果没有,您将立即重定向到 SecurePortal
,并带有一个查询字符串,指示您正在登录 SecureApp
。
使用 SecurePortal
登录后,WIF 框架会从 SecurePortal
生成一个 HttpResponse
,其中包含一些“隐藏”HTML 字段,其中包含以下值:表明您已成功登录。这些值可能会根据 SecurePortal
的设置进行签名和/或加密。与这些值一起写入一些 Javascript 代码,以使浏览器将值发布到 SecureApp
。一旦这些值被 SecureApp
验证,框架将编写一个带有 cookie 的 HttpResponse
来指示您已登录。根据我的经验,cookie 的名称以“FedAuth”开头。此时,您现在可以访问 SecureApp
中的页面。
另外,我想指出,该框架似乎有某种方法可以防止它设置的 cookie 被手动删除。
我建议您使用网络调试器并自行观察这个过程,以便更好地理解。
简短的回答: token 首先作为 STS 中的 HttpResponse
提供给您的浏览器,然后在应用程序中作为 cookie 再次提供给您的浏览器。
关于.net - 联合身份验证 token 保存在哪里 [WIF STS]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2897422/