MVC 3 FormsAuthentication RedirectUrl和OpenID

时间:2011-05-23 16:01:31

标签: asp.net-mvc asp.net-mvc-3 openid

我有一个名为SignIn的View,它包含两个用于身份验证的部分视图。一个用于OpenID,另一个用于使用内部帐户登录我的网站。

OpenID表单的Action转到OpenIDSignIn()Action,而另一个只指向SignIn()。除了当用户点击要求他们登录[授权]等的视图的链接时,一切都很好。

我在QueryString中看到returnUrl但是这个值对当前控制器操作不可用,因为它们要么使用OpenID登录,要么正常登录,从而调用与这些视图中的任何一个相关联的ActionResult。

只是为了澄清一下,returnUrl是从FormsAuthentication中抛出的那个,并在执行RedirectFromLoginPage等时使用。

1 个答案:

答案 0 :(得分:0)

public ActionResult SignIn(string returnUrl)
    {
        if(!string.IsNullOrEmpty(returnUrl))
        {
            if(UrlUtil.IsLocalUrl(returnUrl))
            {
                Session.Add("ReturnUrl", returnUrl);
            }
            else
            {
                return RedirectToAction("SignIn", "Account");
            }


        }
        return View();
    }

这似乎是一种可行的解决方法。但是我讨厌会话变量!