asp.net-mvc-5 – MVC 5 – 向用户添加声明
发布时间:2020-12-16 04:31:42 所属栏目:asp.Net 来源:网络整理
导读:我正在开发一个MVC 5互联网应用程序,并使用Identity 2.1. 在用户登录后,我如何向用户添加声明,我知道用户名? 这是我有的: public void AddClaimToUser(string userName,string type,string value ){ var AuthenticationManager = HttpContext.Current.GetO
我正在开发一个MVC 5互联网应用程序,并使用Identity 2.1.
在用户登录后,我如何向用户添加声明,我知道用户名? 这是我有的: public void AddClaimToUser(string userName,string type,string value ) { var AuthenticationManager = HttpContext.Current.GetOwinContext().Authentication; var Identity = new ClaimsIdentity(userName); Identity.AddClaim(new Claim(type,value)); AuthenticationManager.AuthenticationResponseGrant = new AuthenticationResponseGrant(new ClaimsPrincipal(Identity),new AuthenticationProperties { IsPersistent = true }); } 但是,在我调用此方法并检查用户的声明后,未列出添加的声明. 这是我用来在控??制器中获取声明的代码: var identity = (ClaimsIdentity)User.Identity; IEnumerable<Claim> claims = identity.Claims; 提前致谢. 解决方法
首先,你必须在IdentityModels.cs类下创建一个添加声明的方法.就像这样,在下面的代码中我创建了一个对CompanyId的声明.
public class ApplicationUser : IdentityUser { public string FirstName { get; set; } public string LastName { get; set; } public bool IsActive { get; set; } public int? CompanyId { get; set; } public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) { var userIdentity = await manager.CreateIdentityAsync(this,DefaultAuthenticationTypes.ApplicationCookie); userIdentity.AddClaim(new Claim("CompanyId",(this.CompanyId + "" ?? "0"))); return userIdentity; }} 在编写上面的代码之后,您需要在IdentityConfig.cs中再编写一个方法 public static class IdentityExtensions{ public static int CompanyId(this IIdentity identity) { return Convert.ToInt32(((ClaimsIdentity)identity).FindFirst("CompanyId").Value); }} 在此之后,只需输入即可在任何控制器中获取您创建的声明. int companyId = User.Identity.CompanyId(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – Asp.net MVC – 如何检查Ajax请求的会话过期
- 如何使用ASP.Net SqlBulkCopy将常量值插入到列中
- ASP.net Model View Presenter是否值得时间?
- asp.net-mvc – 是否可以在一个命令中搭建多个控制器?
- ASP.NET MVC 富文本Ueditor编辑 后台传值前端乱码解决方案
- asp.net-mvc-3 – 验证摘要消息中的链接
- ASP.NET中的Akka.NET actor系统
- asp.net – 什么时候应该在服务器控件上启用EnableViewStat
- asp.net-mvc – 如何将MVC 3项目更新为jQuery 1.6?
- asp.net-mvc – 奇怪的错误w / NinjectValidatorFactory更新
推荐文章
站长推荐
热点阅读