2011-10-04 3 views
0

저는 C#과 Windows Forms/BHO Objects를 사용하여 IE 용 확장 프로그램을 작성하고 있습니다. 앱에서 다른 클래스/양식의 정보에 액세스하는 데 사용할 수있는 쿠키를 만들어야합니다.Windows Forms C# 응용 프로그램을 사용하여 쿠키 만들기?

쿠키를 만드는 다양한 방법은 모두 ASP.NET과 관련이 있으며 여기서는 도움이되지 않는 Http Response Filter를 사용하는 것 같습니다. 내가 성취하고자하는 것에 대한 세션이 필요하다는 것을 확신하지 못한다. 쿠키를 생성하고 애플리케이션에서 정보에 액세스 한 다음 필요한 경우 제거 할 수 있어야한다. 감사!

답변

1

세션 및 쿠키는 웹 기술입니다. Windows 응용 프로그램에이 파일이있을 필요는 없습니다. 대신 정적 클래스를 사용할 수 있습니다.

internal static class MySharedInfo { 
    /* static proerties and whatever you need */ 
} 

이것은 한 가지 방법 일뿐입니다. 실제로 적합한 방법은 실제로 달성하고자하는 것에 달려 있습니다.

+0

답장을 보내 주셔서 감사합니다. 만약 내가 실제로 어떤 종류의 로그인 자격 증명을 저장할 계획이라면 나는 여전히 클래스를 사용해야합니까? 이 정보를 저장해야 앱의 클래스 파일에서 액세스 할 수 있고 사용자가 할 수있는 작업을 확인하고 웹 서비스를 호출 할 수 있습니다. 쿠키가 가장 좋은 경로라고 가정했지만이 앱의 어느 위치에서나이 클래스의 정보에 액세스 할 수 있습니까? 죄송합니다. 아마도 멍청한 질문 일 것입니다. – Drew

+1

정적 인 클래스와 같은 중앙 인스턴스에서 해당 데이터를 저장하려고합니다. 개인적으로는 사용자의 식별자를 저장하지만 암호가 필요한 것보다 오래 저장되므로 중요한 정보는주의하지 않아도됩니다. 웹 서비스는 세션이 필요한 경우 웹 서비스에 따라 다릅니다. 그러나 세션은 로컬에서 실행되는 응용 프로그램과 관련이 없으므로 이것은 또 다른 이야기입니다. "내 Windows 응용 프로그램에서 세션 사용 웹 서비스에 액세스하는 방법"과 더 비슷합니다. – Sascha

+0

확실히, 나는 쿠키가 아닌 정적 클래스의 경로를 갈 것입니다. 웹 서비스는 세션이 필요 없으며 호출 될 때마다 자격 증명 만 제공합니다. 도와 줘서 고마워! – Drew

1

나는 또한 우리의 응용 프로그램 쿠키에 대해 유사한 코드를 사용했습니다.

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; 
관련 문제