c# - 在提交表单之前防止转到另一页

标签 c# javascript jquery asp.net-mvc asp.net-mvc-5

在我的项目中,我有一个功能,每当创建新用户并登录帐户时,他必须首先更改密码。

因此,如果用户是新用户,我在登录后首先显示 ChangePassowrd 屏幕。菜单只有 ChangePassowrd 和 LogOut 选项存在。

现在,如果假设他输入一些只有在用户更改密码后才能访问的网站网址,这是不允许的。有谁知道我该如何实现它?我知道 widnow.unload 但如果直接粘贴网址则不起作用。 在服务器端,我有一个 BaseController,它在任何 Controller 之前调用(但在调用 Controller 的构造函数之后)进行初始化。我尝试更改 RouteData.Values 但没有成功。它抛出错误 404 未找到。代码如下:

protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
  if (requestContext != null)
  {
    base.Initialize(requestContext);
    if (Convert.ToString(requestContext.HttpContext.Session["UserType"]) == "3")
    {
      requestContext.RouteData.Values["controller"] = "Login";
      requestContext.RouteData.Values["action"] = "ChangePassword";
    }
  }
}

最佳答案

您可以在用户模型中插入一个新属性,这意味着扩展 asp.net 身份模型并使这个新属性类似于 public bool passwordChanged { get;放;} 检查此属性,除非更改密码,否则不允许访问。

关于c# - 在提交表单之前防止转到另一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24583972/

相关文章:

c# - 编写 FizzBu​​zz

javascript - .on(click) 属性设置不起作用

javascript - 更新图表时不会导致内存泄漏的图表库

php - json_encode 将特定字符串替换为数字(对于 flot.js)

javascript - 如何使用 javascript/jquery/jquerymobile(三 Angular 形按钮,关闭键盘按钮)检测 android 软导航

c# - 如何在 C# 中使用 zxing 应用 Reed-Solomon 算法

C#.NET : Scraping dynamic (JS) websites

c# - [HttpPost] 和 [WebMethod] 有什么区别?

javascript - 这种语法差异有什么影响(如果有)?

javascript - 添加/重置新值时,MDC 组件不会更新 UI