簡體   English   中英

ASP.NET LoginStatus:注銷無效

[英]ASP.NET LoginStatus: logout not working

我正在使用成員資格提供程序開發一個Web應用程序,以實現對應用程序部分的身份驗證和用戶/角色訪問。

我在我的母版頁中使用LoginStatus控件作為注銷鏈接,但測試它我發現注銷不起作用。 如果我再次嘗試訪問我的應用程序的任何頁面(登出后),將顯示該頁面...

我想這個問題取決於存儲在用戶會話中的數據不會自動清除。 那就對了?

那么實現注銷和清除會話的核心方法是什么?

注意我沒有為LoginStatus控件實現任何事件。 我正在使用表單身份驗證。 在我的登錄頁面中,我正在使用此代碼:

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
   1, // Ticket version
   this.txtUser.Text, // Username associated with ticket
   DateTime.Now, // Date/time issued
   DateTime.Now.AddMinutes(30), // Date/time to expire
   true, // "true" for a persistent user cookie
   ruolo, // User-data, in this case the roles
   FormsAuthentication.FormsCookiePath);

string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(
   FormsAuthentication.FormsCookieName,
   hash);

if (ticket.IsPersistent) { cookie.Expires = ticket.Expiration; }

Response.Cookies.Add(cookie);

在我的web.config system.web部分:

<authentication mode="Forms">
  <forms name=".ASPXAUTH" loginUrl="login.aspx" protection="All" path="/" domain="keyforup.it"/>
</authentication>
<authorization>
  <deny users="?"/>
</authorization>

我幾乎想不起來試圖找到解決這個問題的方法。 一切在其他瀏覽器上工作正常,但firefox和chrome在登錄后不會在初始頁面上記錄用戶。

當我在site.master文件中將表單的action屬性設置為action =“default.aspx”時,它開始工作。

當我查看資源管理器調試器時,表單操作具有默認值,但在chrome和firefox操作中沒有設置屬性。 我認為這可能是.net登錄狀態控制腳本的問題。

由於我的系統現在工作,我不會進一步搜索,但我希望這對有類似問題的人有幫助。

調用Session.Abandon()LoggedOut事件LoginStatus控制解決這個問題,但我不知道這是否是實現這一目標的最佳途徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM