C# Asp.net标识-如何维护登录用户角色?
我正在使用Angularjs项目,并使用Asp.net身份自定义存储提供程序和企业库进行令牌身份验证 已实现自定义userstore以创建帐户 [Authorize]属性在登录后运行良好。我想限制特定用户的方法 因此尝试实现[Authorize(Roles=“Admin,User”)] 在实际应用中,一个用户可以有两个角色。但是根据系统,当用户登录时,我们限制用户选择特定的角色 所以,在asp.net身份验证后,用户应该选择其中任何一个角色 我需要的是 我想维护他选择的角色(我们认为这个概念像冒充用户,但不完全是这样)。 或者 需要在Authorize属性本身中实现 我看过一些例子,比如我们可以添加身份声明 但我只能在方法中添加自定义声明 GenerateUserIdentityAsync 在我的情况下,我需要在登录验证后添加索赔。我已经完成了一些示例,并实现如下C# Asp.net标识-如何维护登录用户角色?,c#,asp.net,angularjs,asp.net-identity,identity,C#,Asp.net,Angularjs,Asp.net Identity,Identity,我正在使用Angularjs项目,并使用Asp.net身份自定义存储提供程序和企业库进行令牌身份验证 已实现自定义userstore以创建帐户 [Authorize]属性在登录后运行良好。我想限制特定用户的方法 因此尝试实现[Authorize(Roles=“Admin,User”)] 在实际应用中,一个用户可以有两个角色。但是根据系统,当用户登录时,我们限制用户选择特定的角色 所以,在asp.net身份验证后,用户应该选择其中任何一个角色 我需要的是 我想维护他选择的角色(我们认为这个概念像冒
ClaimsIdentity identity = new ClaimsIdentity(DefaultAuthenticationTypes.ApplicationCookie);
identity.AddClaim(new Claim(ClaimTypes.Role, "Test"));
添加声明后,当我尝试获取声明以检查登录的用户角色时
List<Claim> claim = claims.Where(c => c.Type == ClaimTypes.Role).ToList();
List claim=claims.Where(c=>c.Type==ClaimTypes.Role).ToList();
我没有得到角色“测试”
这里我的坏运气是,在声明中,除了role=test之外,我拥有用户的所有角色
如何授权用户角色或在此处保持登录状态。我认为至少有三种解决方案可以解决您的问题:
你能说说否决投票的原因吗?到目前为止你试过什么?您可以在这里完美地使用基于声明的身份验证机制。实际上,我是基于角色进行授权的。但有时用户有不止一个角色。我想允许具有一个角色的用户访问系统。他将被要求在进入应用程序之前选择角色。在这种情况下,我需要解决这个问题。我已经在类似userIdentity.AddClaim(newclaim(ClaimTypes.role,“Jeeva”);中添加了当前用户角色;。我可以从方法中得到细节。是否可以在web api操作中验证以了解当前登录的用户角色?是否有任何教程可以使用标识在asp.net web api中实现模拟?