[CF.Skills]在.NET Compact Framework中设置webservice的session
发布时间:2020-12-17 02:42:43 所属栏目:安全 来源:网络整理
导读:.NET CF中没有Cookie Container之类方便管理cookie的类,我刚刚简单的搜索了一下,找到一段用作Session管理器的代码:(原文见 这里) ???????? /**/ /// ? summary ???????? /// ?This?field?contains?the?received?session?cookie ???????? /// ? /summary ?
.NET CF中没有Cookie Container之类方便管理cookie的类,我刚刚简单的搜索了一下,找到一段用作Session管理器的代码:(原文见
这里)
????????
///?<summary> 除了这种人工控制请求应答的消息头的方式,不知道在.NET CF中大家还有哪些方案来维系webservice的会话,不妨一同探讨一下:-) Regards 黄季冬
????????///?This?field?contains?the?received?session?cookie ????????///?</summary> ???????? private ? string ?cookie? = ? null ; ???????? ///?<summary> ????????///?Http-Header?for?the?request?SessionCookie ????????///?</summary> ???????? private ? const ? string ?REQUESTHEADER_SESSIONCOOKIE? = ? " Cookie " ; ???????? ///?<summary> ????????///?Http-header?for?the?response?SessionCookie ????????///?</summary> ???????? private ? const ? string ?RESPONSEHEADER_SESSIONCOOKIE? = ? " Set-Cookie " ; ???????? private ? void ?ProcessResponse(System.Net.HttpWebResponse?response) ???????? { ????????????//?Is?the?cookie?present?in?the?response? ????????????if?(response.Headers.Get(RESPONSEHEADER_SESSIONCOOKIE)?!=?null) ????????????{? ????????????????//?Store?the?cookie ????????????????cookie?=?response.Headers.Get(RESPONSEHEADER_SESSIONCOOKIE); ????????????} ????????} ???????? ///?<summary> ????????///?This?override?will?tweak?the?request?to?allow?Session-cookies ????????///?</summary> ????????///?<returns>The?tweaked?request</returns> ???????? protected ? override ?System.Net.WebRequest?GetWebRequest(Uri?uri) ???????? { ????????????System.Net.HttpWebRequest?request?=?(System.Net.HttpWebRequest)base.GetWebRequest(uri); ????????????//?Is?the?session?cookie?cached? ????????????if?(cookie?!=?null) ????????????{? ????????????????//?Add?the?sessioncookie?to?the?request ????????????????request.Headers.Add(REQUESTHEADER_SESSIONCOOKIE,?cookie); ????????????} ????????????return?request; ????????} ???????? ///?<summary> ????????///?This?override?will?tweak?the?response?to?allow?Session-cookies ????????///?</summary> ????????? protected ? override ?System.Net.WebResponse?GetWebResponse(System.Net.WebRequest?request) ???????? { ????????????System.Net.HttpWebResponse?response?=?(System.Net.HttpWebResponse)base.GetWebResponse(request); ????????????ProcessResponse(response); ????????????return?response; ????????} ???????? ///?<summary> ????????///?This?override?will?tweak?the?response?to?allow?Session-cookies ????????///?</summary> ???????? protected ? override ?System.Net.WebResponse?GetWebResponse(System.Net.WebRequest?request,?IAsyncResult?result) ???????? { ????????????System.Net.HttpWebResponse?response?=?(System.Net.HttpWebResponse)base.GetWebResponse(request,?result); ????????????ProcessResponse(response); ????????????return?response; ????????} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |