C# mvc 5';条件过滤器';

C# mvc 5';条件过滤器';,c#,asp.net-mvc,asp.net-mvc-5,asp.net-mvc-filters,C#,Asp.net Mvc,Asp.net Mvc 5,Asp.net Mvc Filters,我有一个MVC站点,我想应用一些自定义逻辑,这样每当用户登录或验证得到确认时,如果他们的手机号码没有得到验证,我就将他们重定向到验证页面。 我希望此检查仅在站点上需要身份验证的地方“发生”。 我尝试注册为全局筛选器,但每次执行任何查看/操作时都会调用此检查。(我有逻辑可以检测它们是否经过身份验证)。我觉得这是一个不必要的开销和低效率…有很多控制器操作装饰有[Authorize]属性,我不想为每个添加另一个自定义属性以使其工作,也不想编写自己的自定义[Authorize]提供程序。有什么选择吗??

我有一个MVC站点,我想应用一些自定义逻辑,这样每当用户登录或验证得到确认时,如果他们的手机号码没有得到验证,我就将他们重定向到验证页面。 我希望此检查仅在站点上需要身份验证的地方“发生”。 我尝试注册为全局筛选器,但每次执行任何查看/操作时都会调用此检查。(我有逻辑可以检测它们是否经过身份验证)。我觉得这是一个不必要的开销和低效率…有很多控制器操作装饰有[Authorize]属性,我不想为每个添加另一个自定义属性以使其工作,也不想编写自己的自定义[Authorize]提供程序。有什么选择吗?? 同样,我希望发生的是,每当用户被验证时,我希望我的电话号码验证逻辑发生
谢谢

这些可能会有帮助,那么为什么不将您的支票添加到登录操作中呢?我可以将其添加到登录操作中,问题是您可以登录(即通过身份验证),然后被引导到页面以验证号码。但是您可以例如,只需导航或更改url,您仍将在站点上通过身份验证等。因此,我在想,当它检查用户是否经过身份验证时,我是否可以挂接到事件中。你的问题是“我不想为每个用户添加另一个自定义属性以使其正常工作,也不想编写自己的自定义[授权]提供程序”,因此我读到这句话的意思是你想将代码放在一个位置?对IsAuthenticated的检查可以在任何地方进行,因为它只检查随请求发送的auth cookie。另一方面,您也说过您不希望在任何地方都运行此检查,比如将代码放入基本控制器。最简单的方法是,除非用户提供了移动设备,否则不要对其进行身份验证,您可以在登录操作中覆盖它。哦,好的,谢谢您提供的信息。澄清了一些事情。我创建了一个实现IAAuthenticationFilter接口的a类,并注意到即使在静态页面上,“OnAuthenticationChallenge”也大约每60秒调用一次(我假设这是默认值)。它也会在您导航到其他位置时调用,所以看起来我可能只是在那里实现它,正如您所说,在验证cookie被“选中”时,它也可以随时发生。我会试试看的!只需要弄清楚如何实例化UserManager(使用OWIN):)谢谢