创建联合授权Cookie

时间:2015-05-28 19:27:38

标签: asp.net-mvc cookies ws-federation

我有一个联合的MVC应用程序,一切都很好,除了我第一次加载网站它没有提取我的授权cookie,我必须重新加载页面才能获得授权。似乎正在发生的是这段代码:

*NOBODY

在页面已经加载后执行,然后当我刷新cookie时,我得到了我第一次希望的结果。

我在我的 MembershipUser user = Membership.GetUser(User.Identity.Name); var claims = new List<Claim> { new Claim(ClaimTypes.NameIdentifier, user.Email), new Claim(ClaimTypes.Name, user.UserName) }; var identity = new ClaimsIdentity(claims, "Federation"); var principal = new ClaimsPrincipal(identity); var token = new SessionSecurityToken(principal); FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(token); 控制器中有这个代码,它是第一个加载的页面,但我想也许这不适合放置它,因为我的home文件之前已加载我假设的_Layout视图和控制器是我获得此结果的原因。我的问题是,我应该在哪里创建这个代码来创建我的联合cookie?

1 个答案:

答案 0 :(得分:0)

原来这根本没有必要!我没有意识到我可以将我的AD角色作为联合声明的一部分。这样我就不需要手动创建角色提供程序,并且当用户通过身份验证时,他/她已经在同一个声明中拥有相关角色!如此简单,希望我从头开始新的这样可以省去许多麻烦和工作日!