台灣最大程式設計社群網站
線上人數
746
 
會員總數:246209
討論主題:189782
歡迎您免費加入會員
討論區列表 >> ASP >> 請教有關session寫入資料庫的問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請教有關session寫入資料庫的問題
價值 : 30 QP  點閱數:1561 回應數:2
樓主

冷逸雲
初學者
90 61
640 116
發送站內信

小弟的session紀錄使用者的登入資訊如下

set rs=server.CreateObject("adodb.recordset")
rs.Open "select * from master where name='"&admin&"' and password='"&password&"' " ,conn,1,1
if not(rs.bof or rs.eof) then
if password=rs("password") then
session("admin")=trim(rs("name"))
session("group")=trim(rs("group"))
session("flag")=int(rs("flag"))
session.Timeout=60
以下不分省略



在本機上一切正常,移至國外主機之後session就莫名的總在閒置5分鐘左右就丟失,但我明明設定60分鐘

google了一下發現大多國外主機商對session有很多限制,於是小弟用破英文及google翻譯向主機商反應

主機商回覆小弟說可以建立一個Session State Database給我,並給我一段code要我key進web.config裡,內容如下

<configuration>
<system.web>
<sessionState allowCustomSqlDatabase="true" cookieless="UseUri" mode="SQLServer" sqlConnectionString="Server=localhost;Database=apolo_aspsession;User ID=apolo_aspsession;Password=xp6Bv!65" stateConnectionString="tcpip=127.0.0.1:42424" timeout="60" />
</system.web>
<connectionStrings>
<remove name="LocalSqlServer" />
<remove name="LocalMySqlServer" />
</connectionStrings>
</configuration>


接著我應該要怎麼做呢?
web.config要放在哪個目錄才能實現小弟的需求?


本篇文章發表於2014-11-15 12:05
1樓
作者回應

冷逸雲
檢舉此回應
都沒人可以幫小弟嗎?

有了Session State Database及web.config

如何驗證使用者登入資訊及將session寫入資料庫,並在使用者閒置60鐘之後session失效?

原本驗證登入者的code如下

set rs=server.CreateObject("adodb.recordset")
rs.Open "select * from master where name='"&admin&"' and password='"&password&"' " ,conn,1,1
if not(rs.bof or rs.eof) then
if password=rs("password") then
session("admin")=trim(rs("name"))
session("group")=trim(rs("group"))
session("flag")=int(rs("flag"))
session.Timeout=60
rs.Close
set rs=nothing
if session("group") > 2 then
%>
<script language="JavaScript">
if(confirm('進入 A 組模式請按確定\n\n進入 B 組模式請按取消'))
{
window.location.href="Admin_Index.asp?group=1";
}
else
{
window.location.href="Admin_Index.asp?group=2";
}
</script>
<%
else
response.Redirect "Admin_Index.asp"
end if
else
response.write "<script LANGUAGE='javascript'>alert('對不起,登入失敗!');history.go(-1);</script>"

end if
else
response.write "<script LANGUAGE='javascript'>alert('對不起,登入失敗!');history.go(-1);</script>"

end if
%>
本篇文章回覆於2014-11-19 11:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

老頑童
捐贈 VP 給 老頑童 檢舉此回應
Session State Database及web.config是ASP.Net提供的功能
web.config通常就放在Web應用程式的根目錄下
但要用Classic ASP存取ASP.Net的Session State有些麻煩
你可以參考微軟的說明
http://msdn.microsoft.com/en-us/library/aa479313.aspx
本篇文章回覆於2014-11-19 15:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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