0

我一直在配置我的一些应用程序以使用 Windows Identity Foundation。我使用被动重定向从安全令牌服务获取安全令牌。我通过将 WIF 代码插入到我开始使用 WIF 之前存在的登录网站中,然后在应用程序中使用“添加 STS 引用”来完成此操作。

但是,我有一个不使用登录网站的应用程序。我认为我想做的是在应用程序本身内生成安全令牌,而不将用户重定向到外部 STS。

我尝试使用 ClaimsAuthenticationManager 类来完成此操作,但未成功,该类可用于向从外部 STS 接收的安全令牌添加额外的声明。但是,ClaimsAuthenticationManager 在这种情况下不起作用。不是每个会话仅调用一次 ClaimsAuthenticationManager (预期和期望的结果),而是在每次页面加载时调用它,而没有我在前一页面加载时分配给用户的声明的迹象。

我正在考虑创建一个外部 STS,它将为用户提供来自数据库的声明,但我认为这是一种危险。似乎没有理由我必须只为一个网站创建一个完全独立的 STS。我只想在我的应用程序中生成安全令牌。

4

1 回答 1

-1

可以将 Security Token Service 类放在您自己的应用程序中。

但是,为了让用户在获得令牌之前能够访问您的应用程序中的登录页面,您必须deny users=?Authorizationweb.config 部分中删除 。这将允许用户在没有安全令牌的情况下访问您的网页。一旦他们登录,将他们重定向到相应的页面。

这具有无法使用方便的被动重定向功能的缺点,但它确实有效。这意味着当用户尝试执行需要登录的操作时,您必须手动将用户重定向到登录页面。

于 2010-02-19T20:52:01.857 回答