我实现了OWIN不记名令牌授权,并基于这篇文章:http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/,现在我想将角色添加到不记名令牌,以便我可以在控制器上检索它像我的用户名做... identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));
,并能获取当前用户的用户名与User.Identity.Name
如何将角色添加到asp身份持票人令牌
1
A
回答
2
检查bitoftech在那里我阅读角色,一旦我生成的令牌,或者你可以分配使用手动角色我的最新帖子ClaimsType.Role
就像您分配UserName一样。 希望这回答你的问题。
1
http://nareshjois.com/custom-information-in-asp-net-identity-cookie-ticket/
我设法通过在ASP身份创建一个新的列直接加入AspNetUsers
命名ROLENAME和我表角色手动添加和读取新的角色......
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });
using (AuthRepo _repo = new AuthRepo())
{
UserProfile user = await _repo.FindUser(context.UserName, context.Password);
if (user == null)
{
context.SetError("invalid_grant", "The user name or password is incorrect.");
return;
}
/*var claims = new List<Claim>
{
new Claim(ClaimTypes.GivenName, user.FirstName),
};*/
var identity = new ClaimsIdentity(context.Options.AuthenticationType);
identity.AddClaim(new Claim("sub", context.UserName));
identity.AddClaim(new Claim("role", "user"));
identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));
identity.AddClaim(new Claim("RoleName", user.RoleName));
context.Validated(identity);
}
}
然后,我可以读取与每个用户相关的角色,例如
var cp = User as ClaimsPrincipal; //var cp = (ClaimsPrincipal)User;
var roleName = ((Claim)cp.Claims.SingleOrDefault(x => x.Type == "RoleName")).Value.ToString();
我个人认为,这一易于维护...
+0
雅的复选框。它为我工作。 :) – 2016-07-20 05:31:16
0
您可以添加一个函数来做到这一点。
public static AuthenticationProperties CreateProperties(string userName, string Roles)
{
IDictionary<string, string> data = new Dictionary<string, string>
{
{ "userName", userName },
{"roles",Roles}
};
return new AuthenticationProperties(data);
}
+0
这增加了令牌响应负载,而不是令牌本身。因此,角色/索赔可能会被客户篡改。 – 2016-05-26 22:25:07
相关问题
- 1. 从持票人令牌生成身份
- 2. asp身份2.0添加新角色并将用户添加到角色
- 3. 使用OAuth和持票人令牌将用户角色从ASP.NET身份返回到AngularJS应用程序
- 4. 如何把ASP.net身份角色放入Identityserver4身份令牌
- 5. asp.net身份过期20分钟后持票人令牌
- 6. 基于角色的令牌ASP.net身份
- 7. 如何添加身份验证令牌在角$ HTTP调用
- 8. 从持票人令牌检索信息
- 9. 将多个角色添加到CakePHP身份验证组件
- 10. 通过Cloudformation将角色添加到AWS Cognito身份池
- 11. Asp.net身份无法将用户添加到角色
- 12. ASP身份角色不存在错误
- 13. 如何将DropDownList添加到ASP.NET身份?
- 14. Feign Oauth如何手动设置持票人令牌值?
- 15. Owin身份令牌身份验证令牌端点响应404
- 16. 如何将用户添加到角色
- 17. 如何将用户添加到角色?
- 18. 在身份标识asp中找到用户角色mvc
- 19. Spring过滤器添加角色到令牌请求
- 20. 将基本身份验证添加到ASP MVC操作
- 21. asp.net核心身份提取并保存外部登录令牌并将声明添加到本地身份
- 22. CherryPy身份验证令牌
- 23. Facebook身份验证令牌
- 24. 身份验证令牌
- 25. 与身份验证令牌
- 26. ASP.NET身份 - 生成令牌
- 27. 基于令牌的身份验证票据部分
- 28. ASIHTTP身份验证令牌到期
- 29. 身份会员角色ASP.NET 4.5 MVC添加基于角色的声明
- 30. ASP应用程序中的RSA令牌身份验证
感谢Taiseer,我想手动添加的角色当用户注册一个新帐号...会出现在用户选择角色... – kabue7 2015-02-06 15:15:08