У меня была похожая проблема сегодня, хотя я использую чистый MVC3. По крайней мере, для MVC нет необходимости отправлять returnUrl с CreateRequest()
, кажется, достаточно просто передать returnUrl в качестве параметра при отправке формы в ваш обработчик входа, что-то вроде этого:
Вид:
<form action="/Login/LogOn?returnUrl=@returnUrl" method="post">
Контроллер:
[ValidateInput(false)]
public ActionResult LogOn(string returnUrl)
{...}
Интересно, что тогда переменная returnUrl все еще доступна, даже во время второго прохода через этот метод во время аутентификации OpenID, когда RelyingParty.GetResponse()
больше не является нулевым.