我已经尝试找出WIF有一段时间了,可以使用passiveRedirectEnabled强制用户通过我的STS登录,并限制已知用户访问我的网站。
我现在想在我的RP上使用我自己的登录视图页面,并通过程序在我的所有网站上为信任相同STS的用户登录。
用户应该能够完全查看我的网站,但可以选择通过我的网站导航中的链接登录。
我已经找了好几个小时了,却找不到一个简单可行的答案来实现这一点。
是否也有类似WSFederationAuthenticationModule.FederatedSignOut
的内容用于登录?
如果可能的话,我该怎么做呢。
谨致问候。
是的-看看使用FederatedPassiveSignIn控件建立从ASP.NET依赖方应用程序到STS的信任。
IIRC,这是WIF SDK的一部分。
听起来你只想让用户登录一次,并通过多个不同依赖方网站的身份验证。因此,假设您有一个STS,通过RP1、RP2、RP3建立了多个信任关系。
- 用户浏览到RP1
- RP1将用户重定向到STS
- 用户在STS登录,STS建立会话,用户现在拥有STS会话cookie
- 注意,这是唯一需要用户交互身份验证的步骤,其余步骤是自动重定向
- STS重定向回RP1,RP1建立会话,用户现在也有RP1会话cookie
通过STS身份验证后,您的用户已经有效地通过了RP2和RP3身份验证。情况如下:
- 用户浏览到RP2
- RP2重定向到STS
- STS看到用户已经有了STS会话cookie,所以立即为RP2发出一个令牌,并将用户重定向到那里
- RP2从STS接受令牌,并建立会话,用户现在拥有RP2会话cookie
这是一种非常常见的机制,也是WIF支持的核心场景。例如,在您使用live ID登录hotmail.com后,当您浏览到manage.dev.live.com时,您不必重新进行身份验证。这是因为您有上面第3步中的live ID会话cookie。
这就是你要找的吗?如果是,我可以更新更多细节。