我很茫然。现在,如果用户的会话超时,我的网站将重定向到登录页面。我想解决的一个问题是当用户在登录时点击一个操作按钮时,他们创建一个Ajax请求。 我想在运行ajax调用之前捕获超时,弹出一个模式对话框,提示用户输入用户名和密码,然后在成功登录后进行ajax调用。 我的主要目标是在成功登录后使ajax调用运行,但不一定需要进行弹出,但我认为这将是最佳方式。
我到目前为止所做的是这样的。我创建了一个控制人,他的目的是告诉我是否有超时。在ajaxStart()函数中,我加载了一个调用该控制器的结果的div。如果该div中的html包含单词'Log On',那么我调用window.showModalDialog。这有时可以起作用,有时不起作用。对我来说,这感觉就像一个黑客,并有一个更好的方式来完成它。有任何想法吗??MVC .NET提示用户登录
function ajaxStart() {
var timeoutTest = $('#timeoutTest');
timeoutTest.load(timeoutUrl);
if (timeoutTest.html().indexOf('Log On') != -1) {
window.showModalDialog(logonUrl, "", "dialogHeight: 600; dialogWidth: 400");
}
tid = setTimeout(showSpinner, 500);
}
我做了类似于重定向到登录页面的操作。我的目标不是重定向到登录页面。我的目标是让用户在发送ajax请求之前重新登录,然后一旦他们登录到ajax请求就会继续。所以流程如下。 1.用户点击操作。 2.检测到超时。 3.提示用户登录。 4.用户登录。 5.执行操作。 – 2012-03-05 15:04:56
@YetAnotherSoftwareDeveloper,您无法知道身份验证票证是否已过期而未实际发送请求。因此,流程应该是:1.向操作发送请求2.在客户端上检测401状态码3.显示允许用户输入其凭据的模式登录表单4.成功登录后,您将其重定向到他最初请求的页面 – 2012-03-05 15:06:17
我的方法可以让你重新开启你的活动。您只需将“未完成”函数/数据传递给返回requires_auth时处理登录弹出窗口的方法。 – Gats 2012-03-05 15:14:22