我想使用WIF和STS(声明基本身份验证)在我的MVC应用程序中实现SSO
我有单个数据库,其中包含用户可以访问的用户和应用程序(MVC应用程序条目)?
用户可以访问一个或多个MVC应用程序。
每个应用程序都有指向其他应用程序的链接。
如果用户登录到1个应用程序并且他有权访问2个应用程序,则必须直接对2个应用程序进行身份验证(SSO应该注意)
我已经实现了Identity manger和SecurityTokenService类。
我正在通过以下代码创建令牌
ClaimsIdentity identity = new ClaimsIdentity(AuthenticationTypes.Federation);
identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, userId.ToString()));
identity.AddClaim(new Claim(ClaimTypes.Name, userName));
foreach (var role in roles)
{
identity.AddClaim(new Claim(ClaimTypes.Role, role));
}
ClaimsPrincipal principal = new ClaimsPrincipal(identity);
var token = new System.IdentityModel.Tokens.SessionSecurityToken(principal);
System.IdentityModel.Services.FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(token);
现在有人能告诉我如何为2个网站验证用户身份,当他点击2个网站链接时,如果他有权访问该网站,则不应该要求他登录。