2012-02-14 62 views
1

asp.net mvcアプリケーションのSignout機能を実装しました。私は、後述するように、私はコントローラクラスにコードを引っかけサインアウトというボタンがあり、ボタンのクリック:HTTPヘッダーが送信された後、サーバーはCookieを変更できません+ asp.net mvc + adfs signout

ます。public voidサインアウト(){ { WSFederationAuthenticationModule.FederatedSignOut(NULL、NULL)をしてみてください。最後に
} {IF(FederatedAuthentication.SessionAuthenticationModule = NULL!) FederatedAuthentication.SessionAuthenticationModule.DeleteSessionTokenCookie()。 } }

FederatedAuthentication.SessionAuthenticationModule.DeleteSessionTokenCookie();行にエラーが表示されます。

エラー:HTTPヘッダーが送信された後、サーバーはCookieを変更できません。

上記の問題に関して私にお手伝いできますか?

おかげ&よろしく、 SantoshクマーPatro

答えて

0

FederatedSignOutはSessionTokenCookieを削除した後(あなたのケースがnullである)メソッドパラメータにリダイレクトします。

したがって、「finally」節は必要ありません。

削除すると機能します。

+0

は、私がもし(!FederatedAuthentication.SessionAuthenticationModule =ヌル)FederatedAuthentication.SessionAuthenticationModule.DeleteSessionTokenCookie()を含むfinally節を取り除きます。 }。 Signout(つまりSignout.cshtml)というカスタムビューを作成しましたが、今はjqueryエラーが発生しています。オブジェクト期待されるエラーnumer:-2146823281。誰も私がこの問題を解決するのを助けることができますか? –

+0

サンプルasp.net mvc3アプリケーションを作成し、そのためのadfs認証を実装しました。今、私はSignoutの機能に夢中になり、アプリケーションが正常に動作していることがわかりました。次に、jqueryプラグインファイル(jquery.mobile-1.0.js)がプロジェクトに含まれていることが解析で判明しました。このファイルは、jqueryエラーをポップアップするためのものです。 –

0

コントローラーはEmptyResultを返す必要があります。たとえば:

[HttpPost] 
[Route("logoff", Name = "LogOff")] 
[ValidateAntiForgeryToken] 
public ActionResult LogOff() 
{ 
    WSFederationAuthenticationModule.FederatedSignOut(new Uri(FederatedAuthentication.WSFederationAuthenticationModule.Issuer), new Uri(FederatedAuthentication.WSFederationAuthenticationModule.Reply)); 

    return new EmptyResult(); 
} 
関連する問題