[英]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.