0

これは非常に些細な質問のようですが、それでも実行できません。私はasp.net Webアプリケーションを構築しており、ここでフォーム認証を使用しています。私が従った次の手順。

1) web.config では、これはエントリです

    <認証モード="フォーム">
          <forms loginUrl="Default.aspx" timeout="30" defaultUrl="StockTips.aspx" cookieless="UseCookies"
                 SlidingExpiration="true" />
        </認証>
        <sessionState mode="InProc" cookieless="false" タイムアウト="30" />

2) default.aspx でカスタム認証を使用しました。認証がパスした後、web.config に記載されている defaultUrl にリダイレクトしています。以下はコードです。これはうまくいっています。

セッション["テスト"] = "テスト";
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, true);

Login1 は asp.net のログイン コントロールです。

3) StockTips.aspx (defaulturl) では、Logout linkbutton クリック イベントで、自動的に loginurl (default.aspx) にリダイレクトされるようにセッションを破棄しようとしています。これは起こっていません。同じページ、つまり StockTips.aspx にとどまっています。以下はコードです。

        protected void lnkLogout_Click(オブジェクト送信者、EventArgs e)
        {
            文字列 str = セッション["テスト"].ToString();

            Session.Abandon();
            //Session.RemoveAll();
            //Session.Clear();
            //Response.Cookies.Remove("ASP.NET_SessionId");
            //Response.Cookies["ASP.NET_SessionId"].Value = string.Empty;
            //Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));

            //FormsAuthentication.SignOut();

            string str1 = Session["test"].ToString();
        }

Session["test"] の値も残ります。上記のコメント付きのコードを試しました。セッションが放棄されると、自動的に loginurl にリダイレクトされると確信しているため、Response.Redirect を明示的に loginurl に書き込みたくありません。しかし、どういうわけかそれは機能していません。

次の情報が役立つかどうかはわかりませんが、追加することを考えました. default.aspx と stocktips.aspx の両方が開くマスター ページがあります。マスター ページではなく、stocktips.aspx 内の LinkBut​​ton。

私の側からさらに情報が必要な場合はお知らせください。

助けてください!

前もって感謝します。

よろしく、

サマール

4

1 に答える 1

0

構成

<forms name="WhateverYourAuthNameIs" 
   loginUrl="~/HomePage.aspx" 
   defaultUrl="~/Default.aspx" 
   protection="All" path="/" 
   cookieless="AutoDetect"/>

Jsコードも試してみてください

<body onload="window.setTimeout(function(){document.location.href='/Home.aspx';},30000);">

お役に立てば幸いです

于 2013-05-07T08:07:26.640 に答える