MVC 3 FormsAuthentication RedirectUrl и OpenID - PullRequest
0 голосов
/ 23 мая 2011

У меня есть один вид, называемый SignIn, который содержит два частичных вида для аутентификации.Один предназначен для OpenID, а другой - для входа на мой сайт с использованием внутренней учетной записи.

Действие для формы OpenID переходит к действию OpenIDSignIn (), а другой просто указывает на SignIn ().Все отлично работает, за исключением случаев, когда пользователь щелкает ссылку на представление, которое требует, чтобы он вошел в систему [Авторизация] и т. Д.

Я вижу returnUrl в QueryString, однако это значение недоступно текущему контроллерудействие, потому что они будут либо входить в систему с OpenID, либо нормально, вызывая ActionResult, связанный с любым из этих представлений.

Просто для пояснения returnUrl - это тот, который добавляется туда из FormsAuthentication и используется при выполнении RedirectFromLoginPage и т. Д.

1 Ответ

0 голосов
/ 23 мая 2011
public ActionResult SignIn(string returnUrl)
    {
        if(!string.IsNullOrEmpty(returnUrl))
        {
            if(UrlUtil.IsLocalUrl(returnUrl))
            {
                Session.Add("ReturnUrl", returnUrl);
            }
            else
            {
                return RedirectToAction("SignIn", "Account");
            }


        }
        return View();
    }

Это кажется приемлемым решением. Однако я ненавижу переменные сессии!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...