Я только что начал знать MVC 5, и я пытаюсь использовать его встроенную аутентификацию owin.ASP.NET MVC 5 OWIN Ауентификация
Мне нужно реализовать аутентификацию форм с помощью IIS, но аутентификация OWIN сложна, чем я ждал.
У меня есть модель структуры Entity Framework с собственными таблицами User, Role и RoleUser и вы хотите аутентифицировать пользователя этими таблицами.
Я попытался понять, как работает owin на образце приложения mvc 5. Он имеет класс ApplicationUser:
public class ApplicationUser : IdentityUser
{
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection")
{
}
}
Моя основная проблема - IdentityUser. Это собственный пользовательский класс ASP.NET с реализацией интерфейса IUser и подключением DbContext. У меня есть собственный объект User POCO из EF-модели, и я не хочу смешивать его с интерфейсом IUser ASP.NET. Я знаю, почему, но интерфейс IUser является строковым типом, который также не применим ко мне.
Owin асинхронной знак пользователя в следующий:
private async Task SignInUserAsync(User user, bool isPersistent)
{
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
ClaimsIdentity identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
}
Он рекомендует создать тип ClaimsIdentity идентичности для входа пользователя и свойства пользователя необходимо реализующего интерфейс IUser.
Большой вопрос: предлагается ли owen в моей среде? Я хочу использовать свой User Class с аутентификацией owin, но я не знаю, как это сделать?
Спасибо за помощь!