2011-02-11 5 views
3

クッキーにユーザー名を追加してログアウト時にクリアしようとしていますが、Request.IsAuthenticatedは常にtrueを返すので、メンバーであるかどうかを次のページで知ることができません。Request.IsAuthenticatedは常にtrueです。私は行方不明ですか?

public void Logout() 
    { 
     FormsAuthentication.SignOut(); 
     Session.Abandon(); // trying everything... 
    } 



protected void signin_submit_Click(object sender, EventArgs e) 
    { 
     //checklogins... 
     HttpCookie authCookie = FormsAuthentication.GetAuthCookie(username_top.Text, true); 
    } 

を私はjavascript関数からのログアウトをクリックするんだ、と私はそのが呼び出されていることを確信しているので、それはデバッガを打つ:ここ

は私がしようとしているものです。

私はPage_Load上の値をチェックしています:

protected void Page_Load(object sender, EventArgs e) 
    { 
     bool isAuth = Request.IsAuthenticated; // always true !!! 
     if (isAuth) 
     { 
      registeredDiv.Visible = true; 
      guestDiv.Visible = false; 
     } 
    } 

私は何をしないのですか?ユーザーがログインしているかどうかはどのように知ることができますか?

編集:私はauthenticationModeがweb.configのWindowsに設定されていることを知りました。

は、としてそれを編集:

<authentication mode="Forms"> 

しかし、今では常にfalseを返します。私は同じページにログインした後にリダイレクトしようとしましたが、まだ動作しませんでした。何か案は?

答えて

7

デバッガを起動し、JavaScriptを使用して呼び出しを行っているとすると、これはajaxで行いますか?私はあなたが確かにサインアウトしているが、ユーザをリダイレクトしていないことを考えている。つまり、ユーザがそこに持っているクッキーは上書きされない/破壊されていないので、存在する。

ユーザーがあなたのサイトのログアウトボタンを押すと、本当にクッキーを適切に設定(または解除)できるように、新しいページにリダイレクトする必要があります... MSDN Article on Forms Authentication Signoutとその例前述のようにクッキーを整理するコードRedirectToLoginPage()を呼び出します。

FireCookie for Firebugは、Cookieに関連する問題のデバッグに本当に役立つことがわかりました。

編集
私はにリンクされているMSDNの記事によると:あなたが出て1人の ユーザーをログインしてに別のユーザーを許可するように RedirectToLoginPage方法と 連動してサインアウトの方法を使用することができます

ログイン

コードにはRedirectToLoginPageがコールされていないので、(手動RedirectToLoginPageの仕事をしようとしている場合を除き)が

編集2
十分ではありませんおそらく、代わりにこの機能を使用するためにボタンのコードでは、あなたのログインを変更します。このよう

FormsAuthentication.RedirectFromLoginPage(username_top.Text, true) 

を自動的にすべてのクッキーの設定を処理します...

編集3
あなたはあなたが(応答にクッキーを追加する)を逃したと言ったものを、上記の機能(編集2)はちょうど...

+0

Iをやっているだろう、それを整理しグラッドまた、Response.Redirect( "http:// localhost:36011/cartoon/default.aspx"); Cookieをクリアするのと同じページにリダイレクトされます。十分ではありませんか? – Pabuc

+0

レスポンスにクッキーを追加するのを忘れました:) $ hit happen :) – Pabuc

+0

デバッグされたCookieに関連する問題が発生したときにFiddlerを使用しました –

関連する問題