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

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


person Azamat    schedule 15.07.2017    source источник
comment
После добавления роли пользователю необходимо снова войти в систему.   -  person Ruard van Elburg    schedule 15.07.2017
comment
Я пробовал, но это не работает, потому что привязка [User- ›Role] не сохраняется в базе данных AspNetUserRoles-table (она должна храниться там).   -  person Azamat    schedule 15.07.2017
comment
В этом случае покажите код, в котором вы пытаетесь сохранить выбранные роли.   -  person Ruard van Elburg    schedule 15.07.2017
comment
Я не сохраняю его вручную, поэтому я использую IdentityManage для этой цели, но он не работает ((для вашего объяснения вы можете попробовать его на примере этого сайта scottbrady91.com/ASPNET-Identity/, было бы здорово, спасибо, соответствие!   -  person Azamat    schedule 17.07.2017


Ответы (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);
}
person Bharatsing Parmar    schedule 15.07.2017
comment
да, AuthorizeAttribute работает нормально, но проблема в IdentityManager. Он не хочет сохранять выбранные роли (из пользовательского интерфейса idm) в таблицу AspNetUserRoles в базе данных. Он сохранил всего лишь в AspNetClaims-table. Ошибка IdentityManager? - person Azamat; 15.07.2017