我正在爲使用C#和Windows窗體/ BHO對象的IE編寫擴展。我需要創建一個cookie,我可以使用它來訪問應用程序中其他類/表單的信息。使用Windows窗體C#應用程序創建一個cookie?
創建cookie的各種方法似乎都與ASP.NET相關,並使用Http響應過濾器,這在這裏沒有幫助。我不確定我甚至需要一個會議來完成我想要完成的任務,我只需要能夠創建cookie,從應用程序訪問信息,然後在需要時清除。謝謝!
我正在爲使用C#和Windows窗體/ BHO對象的IE編寫擴展。我需要創建一個cookie,我可以使用它來訪問應用程序中其他類/表單的信息。使用Windows窗體C#應用程序創建一個cookie?
創建cookie的各種方法似乎都與ASP.NET相關,並使用Http響應過濾器,這在這裏沒有幫助。我不確定我甚至需要一個會議來完成我想要完成的任務,我只需要能夠創建cookie,從應用程序訪問信息,然後在需要時清除。謝謝!
會話和cookie是Web技術。您可能不需要在Windows應用程序中具有該功能。相反,你可以使用靜態類。
internal static class MySharedInfo {
/* static proerties and whatever you need */
}
這只是一種方式。一個非常合適的方法取決於你實際想要達到的目標。
我也對我們的應用程序cookie使用了類似的代碼。
HttpWebRequest runTest;
//...do login request
//get cookies from response
CookieContainer myContainer = new CookieContainer();
for (int i = 0; i < Response.Cookies.Count; i++)
{
HttpCookie http_cookie = Request.Cookies[i];
Cookie cookie = new Cookie(http_cookie.Name, http_cookie.Value, http_cookie.Path);
myContainer.Add(new Uri(Request.Url.ToString()), cookie);
}
//later:
HttpWebRequest request =
(HttpWebRequest)WebRequest.Create("http://www.url.com/foobar");
request.CookieContainer = myContainer;
感謝您的回覆,我想您明白我在做什麼。如果我實際上正在計劃存儲某種登錄憑據,我還應該使用班級嗎?我需要存儲這些信息,以便我可以從應用程序中的任何類文件訪問它,以驗證用戶可以執行的操作,還可以調用Web服務。我認爲cookie是最好的路線,但是我能從應用程序的任何位置訪問此類中的信息嗎?對不起,這可能是一個noob問題。 – Drew
我會去找一箇中央實例(比如一個靜態類)來存儲這些數據。我會親自爲用戶存儲一個標識符,但不要注意敏感信息,因爲密碼的存儲時間超過了所需的時間。關於Web服務,如果需要會話,它依賴於Web服務。但會話與您本地運行的應用程序無關,所以這是另一回事。更像是「如何從我的Windows應用程序訪問啓用會話的Web服務」。 – Sascha
當然,我會去靜態類的路線,而不是一個cookie。 Web服務不需要會話,每次調用時都只需憑證。非常感謝你的幫助! – Drew