Я использую встроенную систему аутентификации/авторизации, где ApplicationUser
должен войти в систему и после аутентификации войти в систему с помощью SignInManager
.Asp.Net MVC авторизует пользовательский пользователь, который расширяет ApplicationUser
У меня также есть другой пользователь, CustomUser
, который распространяется ApplicationUser
. CustomUser
аутентифицирован через внешнюю службу. Когда он будет аутентифицирован, я проверю, существует ли он, если я не создаю его и не дам ему CustomRole
.
Как я могу сохранить это разрешение CustomUser
? Я хотел бы иметь возможность разместить атрибут [Authorize(Roles="CustomRole")]
над действиями, где он должен быть разрешен. Это возможно? Что мне нужно сделать, чтобы сделать эту работу? Или есть лучший способ?
EDIT
Вот реализация CustomUser. Он расположен под Application.Models
public class CustomUser : ApplicationUser
{
public int Gender
{
get;
set;
}
public string FCode
{
get;
set;
}
public bool Subscribed
{
get;
set;
}
}
Это упрощенная версия CustomUser
.
Проблема заключается в том, что SignInManager принимает только ApplicationUser, а не расширенный CustomUser. Мне удалось создать CustomUser и добавить к правильной роли, но теперь мне нужно иметь возможность «подписать его» или каким-то образом сообщить системе, какой пользователь использует систему, если это имеет смысл? Так можно ли получить экземпляр SignInManager, который может его подписать? –
joks
@joks - это ваш пользовательский интерфейс, который реализуется с помощью 'IdentityUser'? – Valkyrie
@joks Посмотрите на эту статью, вам не нужно создавать модель для пользовательского пользователя, и вы можете использовать ApplicationUser, если вы хотите предоставить дополнительные свойства, вы можете добавить ее в свой класс, как в этой статье: http: // stackoverflow .com/questions/28335353/how-to-extend-available-properties-of-user-identity – Valkyrie