【发布时间】:2014-08-26 08:44:25
【问题描述】:
在我的项目中,我有一个功能,每当创建新用户并登录帐户时,他必须先更改密码。
所以如果用户是新用户,我会在登录后首先显示 ChangePassowrd 屏幕。菜单只存在 ChangePassowrd 和 LogOut 选项。
现在如果假设他输入了一些只有在用户更改密码后才能访问的网站 url,这是不允许的。有谁知道我可以如何实现它?我知道widnow.unload,但如果直接粘贴url,它就不起作用。 在服务器端,我有一个 BaseController 在任何控制器之前调用(但在控制器的构造函数调用之后)进行初始化。我试图改变 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";
}
}
}
【问题讨论】:
-
我认为这在客户端是不可能的。用户只需通过 url 打开新标签,因此您必须进行服务器端检查。
-
你不能只使用控制器代码吗?剩下的文件呢?如果你只想在前端做,那是不可能的。您必须使用服务器端。
-
@mo.esmp 好的。但是如何在服务器端实现呢?
标签: c# javascript jquery asp.net-mvc asp.net-mvc-5