這似乎是一個非常微不足道的問題,但我仍然無法使其運行。我正在構建一個asp.net web應用程序,我在這裏使用表單身份驗證。我遵循以下步驟。ASP.NET在結束會話後沒有自動重定向到defaultURL
1)在web.config中這是條目
<authentication mode="Forms"> <forms loginUrl="Default.aspx" timeout="30" defaultUrl="StockTips.aspx" cookieless="UseCookies" slidingExpiration="true" /> </authentication> <sessionState mode="InProc" cookieless="false" timeout="30" />
2)Default.aspx中我已經使用自定義身份驗證和認證之後經過我重定向到defaultUrl web.config中提及。以下是代碼。這工作正常。
Session["test"] = "testing"; FormsAuthentication.RedirectFromLoginPage(Login1.UserName, true);
Login1是asp.net的登錄控件。
3)在StockTips.aspx(這是defaulturl),在退出linkbutton點擊事件我想放棄會話,以便它自動重定向到loginurl(default.aspx)。這沒有發生。它停留在同一頁面,即StockTips.aspx。以下是代碼。
protected void lnkLogout_Click(object sender, EventArgs e) { string str = Session["test"].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」]中的值也會保留。我已經嘗試了上面的註釋代碼。我不想顯式編寫Response.Redirect到loginurl,因爲我非常確定會話被取消後會自動重定向到loginurl。但不知何故,它不工作。
我不確定下列信息是否有幫助,但仍然想到添加它。我有一個母版頁,其中default.aspx和stocktips.aspx都打開。 LinkButton在stocktips.aspx中,而不在母版頁上。
請讓我知道你是否需要我的進一步信息。
請幫忙!
在此先感謝。
問候,
薩馬
在 「名稱」 的屬性「形式」標籤你好通知「WhateverYourAuthNameIs」。默認情況下它是「.ASPXAUTH」。我應該輸入什麼而不是「WhateverYourAuthNameIs」? – samar 2013-05-07 08:51:52
你的認證模式是什麼?如果您使用ASP.Net表單身份驗證,則在name屬性下是「MyAuthCookie」。 – 2013-05-07 09:54:41
我認爲你的代碼會話正在結束,但仍然點擊任何按鈕,導致回發asp.net不會自動重定向到loginUrl。我是否期望ASP.NET過多?是否在會話終止後asp.net不會重定向到loginUrl,並且我必須自己做? – samar 2013-05-10 16:09:56