asp.net identitymanager не работает, он не связывает пользователя с ролью в БД (таблица: AspNetUserRoles)

Я пытаюсь использовать IdentityManager (только сначала), и он выглядит очень хорошо, и он создает роль (это круто), но почему он не связывает пользователя с выбранной ролью (int idm), потому что если когда я использую атрибут [Authorize(Roles = "Admin")] в Home/Contact (например), он не работает. Он не сохраняет выбранные роли (из пользовательского интерфейса) в таблицу AspNetUserRoles в базе данных. Он просто сохранен в AspNetClaims-таблице. Является ли ошибка IdentityManager?

1 ответ

Ты можешь попробовать AuthorizeAttribute и установить собственное сообщение об ошибке в нем.

public class WebApiAuthorizeAttribute : AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
    {
        if (!actionContext.RequestContext.Principal.Identity.IsAuthenticated)
        {
            //Logic for when api not authenticated
        }
        base.HandleUnauthorizedRequest(actionContext);
    }
}

Контроллер API-метод, в котором выше атрибут авторизации используется.

[HttpGet]
[WebApiAuthorizeAttribute(Roles="Admin")]      
public async Task<HttpResponseMessage> TestMethod()
{
    return Request.CreateResponse(HttpStatusCode.OK);
}
Другие вопросы по тегам