我们正在使用 ASP.NET Web 应用程序和个人用户帐户来学习这个优秀教程(存档于 Wayback Machine)。
要进行身份验证并获取不记名令牌,我们发布以下内容:
Request URL:http://localhost:3067/token
grant_type=password&username=alice&password=password123
正如预期,令牌提供者返回此:
{
"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"
因此,如果您仍在使用 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 也应该显示。 对于令牌身份验证,您需要将其添加到 ApplicationOAuthProvider 类的 GrantResourceOwnerCrentials 方法中,对于常规 cookie 身份验证,需要在 AccountController 的 GetExternalLogin 方法中进行修改。