我有一个需要使用WIF实现SSO的Web应用程序。已经设置了STS进行身份验证,我可以使用它来登录。
但是,应用程序还需要容纳匿名用户。因此,当用户第一次到达网站时,我需要以某种方式检查STS是否已经登录。如果他是,STS将返回他的令牌(简单),但如果他不是,他应该简单地返回到网站而不需要任何进一步的身份验证,所以他可以继续浏览anonymousley(我该怎么做?)。如果他后来想要进行身份验证,他会点击登录按钮,我们会进行典型的WIF认证舞蹈,我已经到位了。
那么......如果用户未经过身份验证,如何告诉STS什么都不做?
答案 0 :(得分:1)
WIF并没有什么特别之处。您只需在应用中定义什么需要auth,哪些不需要。
在MVC中,您将在控制器上使用[Authorize]
属性。在ASP.NET中,您可以使用:http://msdn.microsoft.com/en-us/library/b6x6shw7(v=vs.100).aspx
答案 1 :(得分:0)
您不应在您的网站(转发方)上混合身份验证。
所有与身份验证相关的问题都应由STS处理。 为了实现您的目标,您应该允许STS上的匿名用户将令牌返回到您的网站(RP),并声明用户为“匿名”(或任何您想要给他打电话的人)。
所以基本上你必须将用户“认证”为未经身份验证:D。
通过这种方式,您无法根据用户是否经过身份验证来判断您的GUI外观和可用性,但是他是否具有特定角色(显然用户“匿名”不会有任何角色)。在我看来,这似乎是一种更好的方法。
希望这会有所帮助。