2011-12-16 7 views
0

asp.netアプリケーションのLoginViewがクリックされるたびにログインクッキーを期限切れにしたいと思います。コードOnViewChangedとOnViewChangingを実行しようとしましたが、コードが実行されていないようです。自動的 クッキーの期限切れLoginViewから

<asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false" 
       OnViewChanging="HeadLoginView_ViewChanging"> 

    protected void HeadLoginView_ViewChanging(object sender, EventArgs e) 
    { 
     if (Request.Cookies["storeNum"] != null) 
     { 
      HttpCookie myCookie = new HttpCookie("storeNum"); 
      myCookie.Expires = DateTime.Now.AddDays(-1d); 
      Response.Cookies.Add(myCookie); 
     } 
    } 

をPage_Loadでこのクッキーのための私のlogin.aspxのページをチェックし、

は彼らにログインの手間を省くサイトのメインページにユーザーをリダイレクトします。しかし、彼らは再びログインすることを選択した場合、私がしたいですログインページが読み込まれるようにCookieを期限切れにします。 loginviewをクリックすると、クッキーを期限切れにするコードが決して実行されないように見えるので、メインページにリダイレクトされます。私はこれがおそらく地獄のように単純だと知っていますが、私はC#を初めて使っていて、自分自身を教えています。私がそれをよく知っているので、これがいかに簡単であるべきかについての発言だけにコメントを送ってはいけません。

答えて

1

私は、このためにViewChangeイベントが機能しないと思います。

"LoggedInTemplate"に表示されるログインURLに "forceLogout"パラメータを追加するのが簡単です。ログインページのPage_Loadメソッドでパラメータを探します。それがなければ、リダイレクトを行ってください。存在する場合は、ユーザーをログアウトしてリダイレクトしないでください。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack && string.IsNullOrEmpty(Request.QueryString["forceLogout"])) 
    { 
     // log the user out 
    } 
    else 
    { 
     // Your original logic 
    } 
} 
+0

完全に機能しました。ありがとうございました!! – jmease

関連する問題