在我的项目中,我有一个功能,每当创建新用户并登录帐户时,他必须首先更改密码。
因此,如果用户是新用户,我在登录后首先显示 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/