DotNetOpenAuth с MVC 4.0

Я пробовал образцы DotNetOpenAuth с ASP.Net MVC 4 Developer Preview.

Я могу успешно вызывать свой Action с тестовой страницы, но столкнулся со странной проблемой из-за одной строки кода:

  var request = _openid.CreateRequest(openIdUrl);
  var fetch = new FetchRequest();
  fetch.Attributes.AddRequired(WellKnownAttributes.Contact.Email);
  fetch.Attributes.AddRequired(WellKnownAttributes.Name.First);
  fetch.Attributes.AddRequired(WellKnownAttributes.Name.Last);
  request.AddExtension(fetch);
  //return RedirectToAction("Login");
  return request.RedirectingResponse.AsActionResult(); // <-- This is the line throwing the error

Если я закомментирую неудачную строку кода и разкомментирую ту, что перед ней, я больше не вижу ошибки времени выполнения.

На данный момент я попробовал:

1) Убедиться, что у меня правильные перенаправления:


    
        
            
            
        
        
            
            
        
        
            
            
            
        
    
    

2) Иметь правильные пространства имен:

using DotNetOpenAuth.OpenId.Extensions.AttributeExchange;
using DotNetOpenAuth.OpenId.Extensions;

Мне кажется, что DotNetOpenAuth dll была скомпилирована под MVC V 1.0.0 и перенаправление привязки либо не работает, либо метод расширения, возможно, работает против устаревшего метода.

Версия MVC: 4.0.0.0 DotNetOpenAuth Версия: 3.4.7.11121

Любая помощь в работе с MVC 4 будет очень признательна. Изображение экрана ошибки MVC приведено ниже:

Изображение экрана ошибки

Update Я обнаружил, что причиной проблемы является AsActionResult, возможно, потому что метод расширения не совместим с .Net 4.0. Я могу получить объект OutgoingWebResponse из request.RedirectingResponse, но не знаю, как привести его к ActionResult

7
задан Andrew Arnott 17 January 2012 в 14:40
поделиться