台灣最大程式設計社群網站
線上人數
1198
 
會員總數:246137
討論主題:189720
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 較好的網頁帳號登出寫法
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
較好的網頁帳號登出寫法
價值 : 20 QP  點閱數:6490 回應數:8
樓主

迷你豬
門外漢
0 8
116 16
發送站內信

各位前輩好,最近小弟在練習寫會員管理的登出功能。

在網路上大約搜尋了一下,有前輩以下寫法建議



請問各位前輩,除了上述的寫法外,還有沒有推薦的寫法呢?


感謝各位前輩!

搜尋相關Tags的文章: [ 登出 ] , [ logout ] , [ session ] , [ cookie ] ,
本篇文章發表於2015-04-27 10:30
1樓
最有價值解答

育成
捐贈 VP 給 育成 檢舉此回應

看起來像是用Session做登入登出

還可以用Form認證的方式來做大致如下

登入
//如果通過,判斷紀錄是否核准申請(0=申請,1=核准,2=退回)
FormsAuthentication.RedirectFromLoginPage(user.ID, false); //通過驗證


登出
FormsAuthentication.SignOut();

web.config

form認證
<system.web>
<authentication mode="Forms">
<forms name="Login" loginUrl="Login.aspx" timeout="180"/>
</authentication>
</system.web>

要讓做為認證用的網頁可以匿名登入
<configuration>
<location path="Login.aspx">
<system.web>
<authorization>
<allow users="*"/>
<allow users="?"/>
</authorization>
</system.web>
</location>
<location path="Logout.aspx">
<system.web>
<authorization>
<allow users="*"/>
<allow users="?"/>
</authorization>
</system.web>
</location>
</configuration>

IIS 設定此網站為匿名登入(由Form認證管)


以上Form認證給你參考

自己管Session好像也沒什麼問題,以前我也是這樣做的直到發現asp.net有form認證



本篇文章回覆於2015-04-27 12:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
登出要怎麼寫,這要先知道您的登入是如何寫?用什麼機制?
用Session?
用ASP.NET MemberShip?
用ASP.NET Identity?
還是其他?

不同的登入機制,會有不同的登出寫法

請教樓主,您是哪一種登入機制?
^.^a
本篇文章回覆於2015-04-27 12:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

迷你豬
檢舉此回應
To topcat 前輩

目前我是用 Session

但我想了解除了Session外還有其他的登入機制是用什麼方式做登出...
本篇文章回覆於2015-04-27 13:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
Session驗證的話
最重要的就是把Session清空
只要登出將Session清空,就算登出了

寫法倒是沒啥特別....
Session.Abandon()
會比Session.Clear()或者Session.RemoveAll()好一些
因為他除了清除所有的Session內容外,SessionID也會重新換一個

除此之外,倒是寫在哪裡會比較合適?
小喵做的話,會寫一個Page(WebForm)來處理
任何需要登出,先導向到該頁面去
該頁面處理
1.Session.Abandon()
2.處理其他的資料(Cookie清除, html5 Client Storage清除, DB資料處理, Log登出時間..., 其他...)
3.導向到初始頁面

以上訊息提供樓主參考

^_^
本篇文章回覆於2015-04-27 13:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

topcat
捐贈 VP 給 topcat 檢舉此回應
>>我想了解除了Session外還有其他的登入機制是用什麼方式做登出...

ASP.NET MemberShip:
FormsAuthentication.SignOut()

ASP.NET Identity:


如果有應用到Session存放什麼內容
也都可以同時搭配Session.Abandon()
來清除Session的內容
^_^
本篇文章回覆於2015-04-27 14:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

迷你豬
檢舉此回應
To topcat 前輩

感謝您詳細的解說!

我想要請教一下,如何把【html5 Client Storage】清除呢?

HTML5有local storage 和session storage,想要了解一下有什麼辦法可以做清除?

感謝 topcat 前輩
本篇文章回覆於2015-04-28 02:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
to #6
您可以參考這一篇
HTML5 Web Storage

要清除,呼叫clear()就可以囉

^_^
本篇文章回覆於2015-04-28 09:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

MIS2000 Lab
檢舉此回應
哇!整理得很清楚,這篇文章可以「置頂」

謝謝分享 :-)
本篇文章回覆於2015-04-28 09:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.