asp.net-mvc – 带有ASP.NET标识的MVC 5 – 用户登录时获取声明
发布时间:2020-12-16 03:29:29 所属栏目:asp.Net 来源:网络整理
导读:我正在使用OWIN 2.0,在我登录用户之后,我想从数据库中检索现有的声明,但如果我尝试获取用户的声明,则它们是空的.如果我将相同的代码放在被调用的任何后续控制器中,那么声明就在那里.似乎在初次登录后的下一个请求之前,索赔不可用.为什么是这样? var claimsI
我正在使用OWIN 2.0,在我登录用户之后,我想从数据库中检索现有的声明,但如果我尝试获取用户的声明,则它们是空的.如果我将相同的代码放在被调用的任何后续控制器中,那么声明就在那里.似乎在初次登录后的下一个请求之前,索赔不可用.为什么是这样?
var claimsIdentity = User.Identity as ClaimsIdentity; var testClaim = claimsIdentity.Claims.Where(r => r.Type == "TestClaim").FirstOrDefault(); 解决方法
可能是因为您尚未将声明传递给初始登录(或者错过了调用CreateIdentityAsync)?
使用开箱即用的MVC5应用程序,我在SignInAsync方法中执行此操作: private async Task SignInAsync(ApplicationUser user,bool isPersistent) { AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); var identity = await UserManager.CreateIdentityAsync(user,DefaultAuthenticationTypes.ApplicationCookie); //Get the given name from somewhere var givenName = GetGivenName(); identity.AddClaim(new Claim(ClaimTypes.GivenName,givenName)); AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent },identity); } 这是从Login操作调用的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC,Nhibernate和小型/中型项目的存
- asp.net – Datagrid:计算页脚中列的平均值或总和
- 具有自定义角色的ASP.NET MVC和Windows身份验证
- asp.net – 将http状态代码设置为XXX.X?
- asp.net – 开发和测试环境最佳实践?
- asp.net-mvc-3 – MV3复选框的重复查询字符串值(true,false
- asp.net – 配置节“system.servicemodel”无法读取,因为它
- asp.net-web-api – 如何从WEB API检索邮件?
- 模型 – 视图 – 控制器 – ASP.NET MVC:将ViewModels嵌套
- asp.net中的SqlDependency
推荐文章
站长推荐
热点阅读