IAuthenticationRequest. RedirectToProvider, как предполагается, не возвращается, все же он делает

Метод DotNetOpenAuth.OpenId.RelyingParty.IAuthenticationRequest.RedirectToProvider() не документируется, чтобы никогда возвратиться:

Перенаправляет агент пользователя поставщику для аутентификации. Выполнение текущей страницы завершается после этого вызова.

Однако это действительно возвращается при последней реализации (3.4.3). Я использую следующий код:

using (var relayingParty = new OpenIdRelyingParty())
{
  var response = relayingParty.GetResponse();

  if (response == null)
  {
    // Stage 2: user submitting Identifier
    var openId = Request.Form["openId"];
    relayingParty.CreateRequest(openId).RedirectToProvider();

    throw new Exception("Never gets here");
  }

  ...
}

(Строка с "Никогда не добирается здесь", достигнут). Я должен возвратить ActionResult из этого метода...

  1. Действительно ли это - известная ошибка?
  2. Существует ли aorkaround? Я должен возвратить EmptyResult?

Насколько я понимаю, что это - ошибка - я отправил его в системе отслеживания ошибок проекта.

5
задан ripper234 27 April 2010 в 19:39
поделиться

1 ответ

Поскольку вы используете ASP.NET MVC, вам следует использовать этот код:

using DotNetOpenAuth.Messaging; // required for the extension method to work

    return relyingParty.CreateRequest(openid).RedirectingResponse.AsActionResult();

Очевидно, ASP.NET обычно выдает исключение в результате RedirectToProvider () вызов, но не всегда. Но приведенный выше код будет работать и более дружелюбен к MVC.

5
ответ дан 14 December 2019 в 19:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: