Windows Identity Foundation STS:其他类型的请求



我正在使用WIF。我开发了一个运行良好的STS。STS本身执行登录(基本上使用MicrosoftMVC附带的预滚代码)。到目前为止,我们有两个依赖方可以很好地使用加密身份cookie。事情是这样的:由于所有的代码都在STS中,我希望STS还可以执行其他功能,如注册新用户、更改密码等。所有这些都是预先准备好的。然而,登录后,对STS中路由的任何请求(例如,帐户/注册,甚至帐户/登录)都会失败,并显示"密钥在指定状态下无效"。我花了相当多的时间,我有两个工作RP要复制,试图配置这个东西来解密cookie。我得出结论,这不是配置。我认为STS可能只会响应身份请求。奇怪的是,这一切都适用于IIS express(在我的笔记本电脑上),但在IIS上出现了上述错误。首先想到的是证书保护。然而,如果配置错误,您甚至无法登录,所以我知道STS可以访问证书。抱歉,这一切都有点模糊,但我希望有人有好的想法或领域知识。非常感谢-

您可以确保wif为sts和每个rp使用单独的cookie,方法是在每个站点的设置中对它们进行不同的命名(即stsauth、rp1auth、rp2auth)您可以在应用程序启动时在每个站点的ChunkedCookiedHandler对象上显式设置名称。

var chunkedCookieHandler = new ChunkedCookieHandler {
 RequireSsl = false, 
 Name = "stsauth", 
 Domain = domain, 
 PersistentSessionLifetime = new TimeSpan(0, 0, 30, 0)};

请参阅此处获取完整的代码:

标准STS只关心signin和signout。然而,正如许多人所了解到的那样,还有许多其他流程与"用户"有关。有更改密码、丢失密码、更改电子邮件(实际上是更改任何声明)、刷新密码、尝试登录、注册、在Facebook注册。。。。没有标准的方法来处理这些问题。我们已经通过扩展可以发送到STS的"操作"来解决这个问题。我们允许RP直接调用总共20个操作,而不是签入1.0和签出1.0
您的STS应该有自己的cookie。它不应该与依赖方之一共享cookie。这样,通常就不会出现解密或加密密钥的问题。

相关内容

  • 没有找到相关文章

最新更新