向ASP.NET MVC身份验证添加额外步骤
我有一个使用标准表单身份验证运行的MVC5网站 但是,我需要为用户的登录过程添加一个额外的步骤。一旦用户通过身份验证,我们将查看他们是否可以访问多个办公室。如果他们需要,我们需要向他们展示一份办公室列表,他们必须选择一个 这是一个强制性步骤,在他们完成此操作之前,不能将其视为已登录向ASP.NET MVC身份验证添加额外步骤,asp.net,asp.net-mvc,asp.net-mvc-4,asp.net-mvc-5,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Asp.net Mvc 5,我有一个使用标准表单身份验证运行的MVC5网站 但是,我需要为用户的登录过程添加一个额外的步骤。一旦用户通过身份验证,我们将查看他们是否可以访问多个办公室。如果他们需要,我们需要向他们展示一份办公室列表,他们必须选择一个 这是一个强制性步骤,在他们完成此操作之前,不能将其视为已登录 我们需要创建自己的身份验证还是应该向BaseController添加检查?您可以扩展内置身份验证的实现: public class OfficeSelectionAuthorizeAttribute : Author
我们需要创建自己的身份验证还是应该向BaseController添加检查?您可以扩展内置身份验证的实现:
public class OfficeSelectionAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var result = base.AuthorizeCore(httpContext);
if (result)
{
if (IsOfficeSelected())
{
return true;
}
httpContext.Response.RedirectToRoute("OfficeSelection Route");
httpContext.Response.Flush();
}
return false;
}
private bool IsOfficeSelected()
{
//office selection check
}
}
然后您需要使用此过滤器而不是默认过滤器:
[OfficeSelectionAuthorize]
public class AccountController : Controller
{
//action methods
}
从这里开始,我现在需要了解如何在登录用户的身份中隐藏所选的办公室。我在这里问了一个问题。有什么想法吗?