ASP.NET MVC 2 - 避免由部分视图的Ajax ActionLink设置的returnUrl参数

时间:2010-10-19 21:35:42

标签: asp.net jquery asp.net-mvc-2

在主/详细方案中,我使用Edit ActionLink通过jQuery Ajax调用获取部分详细信息视图;非常典型,对吧?

我遇到的问题是当用户的身份验证令牌过期并且他点击编辑ActionLink时。 LogOn操作的returnUrl参数由返回局部视图的ActionLink设置,并且在成功验证后,将显示仅包含部分视图的大白屏。

这实际上适用于返回部分视图的许多Ajax操作链接中的任何一个 - 任何时候其中一个会因为过期的身份验证票据而触发重定向到LogOn操作。

        [HttpPost]
        public ActionResult LogOn(LogOnModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                if (MembershipService.ValidateUser(model.UserName, model.Password))
                {
                    FormsService.SignIn(model.UserName, model.RememberMe);
                    if (!String.IsNullOrEmpty(returnUrl))
                    {
                        return Redirect(returnUrl);
                    }
                     .....

当然return Redirect(returnUrl);是问题所在。

我想知道其他人如何处理这种情况。

感谢。

1 个答案:

答案 0 :(得分:0)

我在这种情况下使用jQuery Idle Timout。当用户退出时,我只返回部分视图内的登录屏幕。只需将超时值设置为与会话注销时间相同的值即可。