C# 如何在ASP.NET MVC 5中向基于OWIN的身份验证工作流添加自定义验证?

C# 如何在ASP.NET MVC 5中向基于OWIN的身份验证工作流添加自定义验证?,c#,asp.net-mvc-5,owin,asp.net-identity-2,C#,Asp.net Mvc 5,Owin,Asp.net Identity 2,我在一个ASP.NETMVC5项目中使用ASP.NETIdentity 2,该项目只通过外部提供者进行身份验证,到目前为止一切正常。我想做的是使用自定义用户数据添加自定义验证过程 例如,假设我的IUser模型有一个自定义bool字段(Active)。执行外部身份验证时,/Account/ExternalLoginCallback执行以下操作: var loginInfo=await AuthenticationManager.getexternallogininfosync(); if(logi

我在一个ASP.NETMVC5项目中使用ASP.NETIdentity 2,该项目只通过外部提供者进行身份验证,到目前为止一切正常。我想做的是使用自定义用户数据添加自定义验证过程

例如,假设我的
IUser
模型有一个自定义bool字段(
Active
)。执行外部身份验证时,
/Account/ExternalLoginCallback
执行以下操作:

var loginInfo=await AuthenticationManager.getexternallogininfosync();
if(loginInfo==null)
{
返回重定向操作(“登录”);
}
//如果用户已经登录,请使用此外部登录提供程序登录该用户
var result=await SignInManager.ExternalSignInAsync(loginInfo,isPersistent:false);
开关(结果)
{
案例标志状态成功:
返回重定向到本地(returnUrl);
案例标志状态锁定输出:
返回视图(“锁定”);
案例标志状态。要求验证:
return RedirectToAction(“SendCode”,new{ReturnUrl=ReturnUrl,RememberMe=false});
案例信号状态故障:
违约:
//...
}
auth cookie似乎是在
SignInManager.ExternalSignInAsync
调用中创建的

我想知道的是,是否有任何方法可以将此调用挂接到
SignInManager.ExternalSignInAsync
,并附加我自己的验证过程(例如,检查用户的
Active
标志是否设置为
true
),以便在自定义过程失败时使方法返回
SigInStatus.Failure
(以下示例中,
Active
为false)

提前谢谢