根据您的描述,这似乎是一个授权问题,因此我建议使用自定义 Authorize 属性类(从 AuthorizeAttribute 继承)。
从这里您可以覆盖 OnAuthorization 方法,您可以在其中检查用户是否已完成所需的配置步骤并相应地设置 filterContext.Result。一个基本的实现看起来像这样(假设你有一个有效的 /Account/Configure 路由):
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
var user = ; // get your user object
if(user.IsConfigured == false) // example
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary
{
{
"ConfigureUserRoute",
filterContext.RouteData.Values["ConfigureUserRoute"]
},
{"controller", "Account"},
{"action", "Configure"}
});
return;
}
}
}
您可以在 StackOverflow 上找到有关如何在此处创建自定义 AuthorizeAttribute 类的其他示例。