gpt4 book ai didi

asp.net - 当我们使用 ASP.NET WebApi 进行身份验证时返回用户的角色

转载 作者:行者123 更新时间:2023-12-02 16:44:43 24 4
gpt4 key购买 nike

我们正在关注这个excellent tutorial使用 ASP.NET Web 应用程序和个人用户帐户。

要进行身份验证并获取不记名 token ,我们发布以下内容:

Request URL:http://localhost:3067/token
grant_type=password&username=alice&password=password123

正如预期的那样, token 提供者返回以下内容:

{
"access_token":"rkg5dP_Lyg ... TIHLD2xIRJ",
"token_type":"bearer",
"expires_in":1209599,
"userName":"Alice",
".issued":"Mon, 03 Feb 2014 19:06:32 GMT",
".expires":"Mon, 17 Feb 2014 19:06:32 GMT"
}

这很好。现在,我们如何向 JSON 响应添加角色属性?

   "userRole":"admin"

最佳答案

如果您在 Visual Studio 中使用默认项目模板,那么您所需要做的就是将 userRole 添加到调用 Authentication.SignIn 时传递的 AuthenticationProperties 数组中。

因此,如果您仍在使用 ApplicationOAuthProvider 类,请将 userRole 添加到 CreateProperties 方法中的属性字典中,如下所示:

public static AuthenticationProperties CreateProperties(string userName, string userRole)
{
IDictionary<string, string> data = new Dictionary<string, string>
{
{ "userName", userName },
{ "userRole", userRole }
};
return new AuthenticationProperties(data);
}

然后,每当您调用 Authentication.SignIn 时,您都会向其传递新的属性列表,并且 userRole 也应该显示。对于 token 身份验证,您需要将其添加到 ApplicationOAuthProvider 类的 GrantResourceOwnerCrentials 方法中,对于常规 cookie 身份验证,需要在 AccountController 的 GetExternalLogin 方法中对其进行修改。

关于asp.net - 当我们使用 ASP.NET WebApi 进行身份验证时返回用户的角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21535727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com