2011-06-02 34 views
0

を取得し、私のコードですINTERNET_OPTION_PROXYとは、私がここでIE7 からプロキシのユーザー名とパスワードを取得するIEのプロキシのユーザー名とパスワード

CString UserName; 
LPINTERNET_PROXY_INFO ProxyInfo; 

DWORD dwSize; 
InternetQueryOption(NULL,INTERNET_OPTION_PROXY,NULL,&dwSize); 

if (dwSize > 0) 
{ 
    BYTE * lpszData = new BYTE [dwSize]; 
    InternetQueryOption (NULL, INTERNET_OPTION_PROXY, lpszData, & dwSize); 
    ProxyInfo= (LPINTERNET_PROXY_INFO) lpszData; 
    InternetQueryOption (NULL, INTERNET_OPTION_PROXY_USERNAME, NULL, &dwSize); 
    if (dwSize> 0) 
    { 
     lpszData = new BYTE [dwSize]; 
     InternetQueryOption (NULL, INTERNET_OPTION_PROXY_USERNAME, lpszData, &dwSize); 
     UserName = lpszData; 
     delete [] lpszData; 
    } 
} 

InternetQueryOptionが正常に動作します。しかし、私はINTERNET_OPTION_PROXY_USERNAMEまたはINTERNET_OPTION_PROXY_PASSWORDで使用すると、0に等しいdwSizeで失敗します。GetLastError関数はエラーコード12018を返します。 これらの関数が失敗する理由は何ですか?

答えて

0

これらの機能は、ユーザがすでにプロキシに認証されている場合(ポップアッププロンプトで資格情報を入力することによって)、のプロセス内でのみ有効です。そうするまで、WinINET にはのプロキシ認証情報がなく、結果は空になります。

プロキシがNTLMまたはKerberosを介してユーザーの現在のWindowsログイン資格情報にのみ依存している場合も、結果は空になります。

+0

ご返信ありがとうございます。既に私はプロキシに認証済みです。また、ユーザー名とパスワードは、ポップアッププロンプトのRemember passwordオプションによって保存されています。また、現在のプロセスの中で何を意味していますか?どのように動作するのか説明してください。それとも他の選択肢がありますか? – Mahantesh