Я использую ASP. NET Identity 2 в ASP. NET MVC 5 проекте, который аутентифицируется исключительно через внешнего провайдера, и пока все работает. Я хочу добавить пользовательскую процедуру проверки с использованием пользовательских данных.
Например, предположим, что моя модель IUser
имеет настраиваемое поле bool (Active
). При выполнении внешней аутентификации /Account/ExternalLoginCallback
делает следующее:
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
if (loginInfo == null)
{
return RedirectToAction("Login");
}
// Sign in the user with this external login provider if the user already has a login
var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false);
switch (result)
{
case SignInStatus.Success:
return RedirectToLocal(returnUrl);
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.RequiresVerification:
return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false });
case SignInStatus.Failure:
default:
//...
}
Аутентификация ie создается, кажется, в вызове SignInManager.ExternalSignInAsync
.
Что я хочу Я знаю, есть ли какой-нибудь способ, которым я могу подключить этот вызов к SignInManager.ExternalSignInAsync
и добавить свой собственный процесс проверки (например, проверить, установлен ли флаг пользователя Active
true
), чтобы я мог вернуть метод SigInStatus.Failure
в если мой пользовательский процесс завершится неудачно (в следующем примере Active
будет ложным).
Заранее спасибо.