3

次のサンプルを使用: http://www.west-wind.com/Weblog/posts/899303.aspx

次の行...

return req.RedirectingResponse.AsActionResult();

文字列「DotNetOpenAuth.Messaging.OutgoingWebResponseActionResult」をレンダリングします。これは、投稿された行で ActionResult として返されるクラスです。クラス名を実際のリダイレクトではなく文字列として取得する理由を知っている人はいますか?

事前にt​​hnx!

4

2 に答える 2

4

BinディレクトリとWebサーバーに複数のバージョンのMVCがある可能性がありますか?ActionResultAppDomainにロードされたようなMVCタイプの複数のアセンブリ(異なるバージョン)があり、AsActionResultメソッドが1つのバージョンを返し、MVC Webアプリが異なるバージョンを使用した場合、ToString。実行しているASP.NETMVCのバージョンは何ですか?DotNetOpenAuthのAsActionResultメソッドは、MVCフレームワークの1.0RTMバージョンに対してコンパイルされました。ASP.NET MVC 2(.NET 4.0に含まれている)を使用している場合、これが問題である可能性があります。

このスニペットをMVC2のweb.configファイルに追加すると、DotNetOpenAuthの公式ビルドを使用できるようになるため、独自のスニペットをビルドする必要がなくなると思います。

<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>
于 2009-12-22T17:14:23.327 に答える
1

.Net 3.5 および MVC 2 で動作する別のソリューション。

それ以外の

var authRequest = relyingParty.CreateRequest(....);
....
return authRequest.RedirectingResponse.AsActionResult();

使用する

var authRequest = relyingParty.CreateRequest(....);
....
authRequest.RedirectToProvider();
Response.End();
return new EmptyResult();
于 2012-01-12T16:19:28.597 に答える