我實現了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