저는 ASP.Net MVC 4 Developer Preview를 통해 DotNetOpenAuth 샘플을 시험해 보았습니다.MVC 4.0이 포함 된 DotNetOpenAuth
나는 성공적으로 테스트 페이지에서 내 작업을 호출하지만, 이상한 문제에 코드 중 하나로 인해 라인을 실행할 수 있습니다 : 나는 코드를 일으키는 줄을 주석이 전에 하나의 주석을 해제하면
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
을 , 런타임 오류가 더 이상 표시되지 않습니다.
은 지금까지 나는 시도했다 :
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
</dependentAssembly>
</assemblyBinding>
<legacyHMACWarning enabled="0" />
</runtime>
2) 올바른 네임 스페이스 유무 : :
1) 내가 올바른 리디렉션을 보장
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의 오류 화면 이미지가 더 다음과 같습니다 :
업데이트 나는 AsActionResult이 확장 방법은 닷넷 4.0와 호환되지 않습니다 아마도 때문에, 문제의 원인 것으로 나타났습니다. request.RedirectingResponse에서 OutgoingWebResponse 객체를 가져올 수 있지만 ActionResult에 캐스트하는 방법을 알고 있어야합니다.
예제 코드는 내가 볼 수있는 MVC4에서 작동하는 OpenId를 얻게합니다. 공급자 버튼을 호출 할 때 이미지 경로에서 JS 오류에 이르기까지 수많은 문제가 발생합니다. – Picflight