Est-ce que vous avez plusieurs versions de MVC dans votre répertoire Bin et votre serveur Web? Il me semble que si vous aviez plusieurs assemblys (les différentes versions) des types MVC comme ActionResult
chargés dans votre AppDomain, et la méthode AsActionResult
a retourné une version et votre application web MVC a utilisé une version différente, que cela pourrait juste sauver avec ToString
. Quelle version d'ASP.NET MVC utilisez-vous? La méthode AsActionResult
de DotNetOpenAuth a été compilée par rapport à la version 1.0 RTM du framework MVC. Si vous utilisez ASP.NET MVC 2 (inclus avec .NET 4.0), je pourrais voir cela peut-être un problème.
Je crois que si vous ajoutez cet extrait à votre fichier web.config de MVC 2, qu'il vous permettra d'utiliser la construction officielle de DotNetOpenAuth de sorte que vous ne devez pas construire votre propre:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Quel est le type de retour dans votre fonction? –
ActionResult ... voir l'exemple dans l'url ... la fonction est [AcceptVerbs (HttpVerbs.Post | HttpVerbs.Get), ValidateInput (false)] public ActionResult OpenIdLogOn (string returnUrl) {...} – promontis
IMO il n'y a rien de mal avec l'exemple de code fourni dans le lien, pas plus que la librairie DotNetOpenAuth. J'ai vérifié le code plusieurs fois et il n'y a pas beaucoup de code qui pourrait être faux. Je pense que l'erreur * est quelque part dans le routage ou web.config ... la question est où exactement. – promontis