0

我有一个需要使用 WIF 实现 SSO 的 Web 应用程序。已经设置了一个 STS 进行身份验证,我可以用它来登录就好了。

然而,该应用程序还需要容纳匿名用户。因此,当用户第一次到达网站时,我需要以某种方式检查 STS 是否已经登录。如果他是,STS 将返回他的令牌(简单),但如果他不是,他应该简单地返回到网站而无需任何进一步的身份验证,这样他就可以继续浏览匿名(我该怎么做?)。如果他稍后想要进行身份验证,他会单击登录按钮,然后我们会进行典型的 WIF 身份验证舞蹈,这是我已经准备好的。

那么......如果用户未通过身份验证,我如何告诉 STS 什么也不做?

4

2 回答 2

1

WIF 并没有什么特别之处。您只需在您的应用程序中定义需要身份验证的内容和不需要身份验证的内容。

在 MVC 中,您将[Authorize]在控制器上使用该属性。在 ASP.NET 中,您可以使用它:http: //msdn.microsoft.com/en-us/library/b6x6shw7 (v=vs.100).aspx

于 2012-10-01T14:07:14.613 回答
0

您不应该在您的网站(中继方)上混合身份验证。

所有与身份验证相关的问题都应由 STS 处理。为了实现您的目标,您应该在您的 STS 上允许匿名用户并将令牌返回到您的网站 (RP),并声明将用户指示为“匿名”(或您想称呼他的任何名称)。

所以基本上你必须将用户“认证”为未经认证的:D。

这样,您就不会根据用户是否经过身份验证而是根据他是否具有特定角色来决定您的 GUI 外观和可用性(显然用户“匿名”不会有任何角色)。在我看来,这似乎是一种更好的方法。

希望这可以帮助。

于 2012-10-02T12:55:13.720 回答