5
我正在使用OpenIddict for token authentication。昨天當我打電話給userManager.FindByNameAsync(request.Username)
時,我得到了具有角色的用戶。
今天我與角色屬性計數用戶= 0userManager.FindByName不返回角色
我試圖與await userManager.GetRolesAsync(user);
加載作用和獲得帶有計數3.陣列這意味着用戶具有作用。
我不知道發生了什麼變化,但是如何使用FindByNameAsync函數加載用戶角色?
完整代碼:
[HttpPost("token"), Produces("application/json")]
public async Task<IActionResult> Exchange(OpenIdConnectRequest request)
{
Debug.Assert(request.IsTokenRequest(),
"The OpenIddict binder for ASP.NET Core MVC is not registered. " +
"Make sure services.AddOpenIddict().AddMvcBinders() is correctly called.");
if (request.IsPasswordGrantType())
{
var user = await userManager.FindByNameAsync(request.Username); //roles count is 0
if (user == null)
{
return BadRequest(new OpenIdConnectResponse
{
Error = OpenIdConnectConstants.Errors.InvalidGrant,
ErrorDescription = "The email/password couple is invalid."
});
}
var roles = await userManager.GetRolesAsync(user); //roles count is 3
爲什麼我不能直接輸入.Include(索賠)等,並且實際得到它哇 – Hristo
我不認爲侮辱是必要的來表達您的意見。如果你想使用'Include'擴展名,你必須創建你自己的商店(可以從EF官方商店派生)並覆蓋返回用戶實例的方法。 – Pinpoint
這只是完全創建。你以某種方式檢索你的一半屬性 - 一半是另一半。誰認爲這個想法很好!性能?當您將癌症交給開發社區的一半時,您將無法獲得性能 – Hristo