Ho lavorato molto con DotNetOpenAuth. Per prima cosa abbiamo usato 5.0.0-alpha1 ma siamo passati alla v4.0.30319 perché non siamo stati in grado di trovare ciò che stava causando i nostri problemi.DotNetOpenAuth non funziona con MVC 5 RC
Stiamo costruendo un progetto API Web C# su .NET 4.5.1 RC con MVC 5 RC in Visual Studio 2013. Abbiamo implementato IAuthorizationServerHost
, INonceStore
e ICryptoKeyStore
.
Il problema che abbiamo sono intorno il seguente caso:
public class TokensController : Controller
{
private readonly AuthorizationServer authorizationServer = new AuthorizationServer(new MyAuthorizationServer());
/// <summary>
/// This action will handle all token requests.
/// </summary>
/// <returns>The action result that will output the token response.</returns>
[HttpPost]
public ActionResult Index()
{
var outgoingWebResponse = this.authorizationServer.HandleTokenRequest(this.Request);
return outgoingWebResponse.AsActionResult();
}
}
return outgoingWebResponse.AsActionResult();
un metodo con origini nel DotNetOpenAuth.Messaging
e la classe statica MessagingUtilities
. Lo DotNetOpenAuth.Core
(che contiene questo codice) fa riferimento a MVC 4.0 e alla classe HttpResponseMessageActionResult
eredita da ActionResult
.
Ciò significa che la versione corrente di DotNetOpenAuth non è compatibile con MVC 5. La compilazione e il tentativo di eseguire ciò causerà solo 500 errori.
Qualcuno ha qualche idea su come questo possa essere risolto facilmente (o forse no)?
Non ho notato che il pacchetto DotNetOpenAuth Nuget ha scritto sui miei pacchetti per 5.0. Quindi dopo aver reinstallato i pacchetti e aggiunto nuovamente l'assemblaggio:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
Questo ci ha un po 'oltre. Ora l'errore si riduce a:
Tentativo dalla sicurezza metodo trasparente 'DotNetOpenAuth.Messaging.MessagingUtilities.AsActionResult (DotNetOpenAuth.Messaging.OutgoingWebResponse)' di accesso di sicurezza di tipo critico 'System.Web.Mvc.ActionResult' non riuscita.
Ho appena eseguito l'aggiornamento a MVC5 e mi sono imbattuto in questo problema. Guardandomi attorno sono stato sorpreso di scoprire che AA ha abbandonato il progetto. Non posso davvero dire che DNOA è ancora in fase di sviluppo perché non esiste un rilascio da molto tempo. Qual è lo stato del progetto? Stai ancora usando DNOA? – Jammer