質問

ます。http://www.west-wind

次のサンプルを使用しました。 COM /ブログ/記事/ 899303.aspxする

次の行...

return req.RedirectingResponse.AsActionResult();

文字列 "DotNetOpenAuth.Messaging.OutgoingWebResponseActionResult" をレンダリングします。 これは、掲載さラインでのActionResultとして返されるクラスです。私が代わりに実際のリダイレクトの文字列としてクラス名を取得する理由は、誰もが知っていますか?

事前に

のthnx!

役に立ちましたか?

解決

それはあなたがあなたのBinディレクトリと、WebサーバーでのMVCの複数のバージョンを持っていることだろうか?それはあなたのAppDomainにロードActionResultのようなMVCの種類の複数のアセンブリ(異なるバージョンを)持っていた、とAsActionResult方法は、1つのバージョンを返され、あなたのMVCのWebアプリはそれだけでToStringで救済する可能性があることを、別のバージョンを使用した場合と私を打ちます。あなたは、ASP.NET MVCのどのバージョンを実行していますか? DotNetOpenAuthのAsActionResult方法は、MVCフレームワークの1.0 RTM版に対してコンパイルされました。あなたはASP.NET MVC 2(.NET 4.0に付属)を使用している場合は、私は、これは多分問題点見ることができました。

あなたはそれはあなたがあなた自身を構築する必要はありませんので、あなたがDotNetOpenAuthの公式ビルドを使用できるようになりますことを、あなたのMVC 2のweb.configファイルにこのスニペットを追加する場合は、

私は信じています:

<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>

他のヒント

別の解決策、.NET 3.5およびMVC 2で私のために働いています。

の代わりに

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

使用

var authRequest = relyingParty.CreateRequest(....);
....
authRequest.RedirectToProvider();
Response.End();
return new EmptyResult();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top