.net - 联合身份验证 token 保存在哪里 [WIF STS]?

标签 .net wif windows-identity sts-securitytokenservice

当我开始探索 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/

相关文章:

c# - 在任何应用程序中持久层有什么用?

c# - Windows Identity Foundation 中的 TrustedIssuers

asp.net - 实现 Office 365 风格的基本身份验证(事件配置文件)

c# - 防止在 DataGridView 中选择单元格

c# - 使用 Clipboard.GetFileDropList : how to check if that came from a cut or copy operation? 的控制台应用程序

.net - ASP.Net:添加额外要监控的文件以触发 AppDomain 回收

android - 在Android中,有没有办法使用广播接收器来检测wifi和3G之间的切换?

c# - 从 ASP.NET 页面中获取 Windows 登录

wif - 消息 : ID4243: Could not create a SecurityToken. token 缓存中未找到 token ,上下文中未找到 cookie

.net - 构建自定义 "ClaimsAuthorizationManager"Windows Identity Foundation 类的好方法是什么?