使用ASP.NET Identity 2.0和MVC 5自定义单一登录



我正在用Identity 2.0在MVC 5中重新编写我的MVC 4表单身份验证应用程序。

目前,该网站正在使用一种专有的单点登录方法,该方法可以解密POST请求中的传入参数,并根据内容的有效性,使用FormsAuthentication.SetAuthCookie设置身份验证cookie,并将用户重定向到安全内容。

现在我正在使用ASP.Net Identity,什么是FormsAuthentication.SetAuthCookie功能的合适替代品?请记住,我不想将这些用户中的任何一个持久化到数据库中。它们应该只存在于它们的令牌/cookie中。

明白了!我在这篇有用的文章中找到了解决方案。

基本上,您创建一个ClaimsIdentity,然后使用OWINContext中的AuthenticationManager来"登录"该标识,从而创建身份验证cookie。

像这样:

var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Name, "Brock"));
claims.Add(new Claim(ClaimTypes.Email, "brockallen@gmail.com"));
var id = new ClaimsIdentity(claims,DefaultAuthenticationTypes.ApplicationCookie);
var ctx = Request.GetOwinContext();
var authenticationManager = ctx.Authentication;
authenticationManager.SignIn(id);

相关内容

  • 没有找到相关文章

最新更新