如何在C#interop中使用InternetQueryOption?
在我的C#代码中,我想使用InternetQueryOption,它在中定义如下: 在我的C#代码中,我写道:如何在C#interop中使用InternetQueryOption?,c#,c++,interop,marshalling,wininet,C#,C++,Interop,Marshalling,Wininet,在我的C#代码中,我想使用InternetQueryOption,它在中定义如下: 在我的C#代码中,我写道: [DllImport("wininet.dll", SetLastError = true)] static extern bool InternetQueryOption( IntPtr hInternet, uint dwOption, IntPtr lpBuffer,
[DllImport("wininet.dll", SetLastError = true)]
static extern bool InternetQueryOption(
IntPtr hInternet,
uint dwOption,
IntPtr lpBuffer,
ref int lpdwBufferLength);
<>我的C++代码:
...
HINTERNET hRequest = HttpOpenRequest(hConnect, "POST","/BM-Login/auth-cup", NULL, NULL, accept, secureFlags, 0);
DWORD dwFlags;
DWORD dwBuffLen = sizeof(dwFlags);
InternetQueryOption (hRequest, INTERNET_OPTION_SECURITY_FLAGS,
(LPVOID)&dwFlags, &dwBuffLen);
dwFlags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA;
dwFlags |= SECURITY_FLAG_IGNORE_REVOCATION;
dwFlags |= SECURITY_FLAG_IGNORE_CERT_DATE_INVALID;
dwFlags |= SECURITY_FLAG_IGNORE_CERT_CN_INVALID | SECURITY_FLAG_IGNORE_WRONG_USAGE;
InternetSetOption (hRequest, INTERNET_OPTION_SECURITY_FLAGS,
&dwFlags, sizeof (dwFlags) );
...
如何用C#写同样的东西?谢谢。(很抱歉我的英语很差)我建议使用管理代码,而不是通过互操作。看一看这张照片。另外,请看一下我对stackoverflow问题的回答,了解如何使用此类的工作示例。我建议使用管理代码,而不是通过互操作执行此操作。看一看这张照片。另外,请看我对stackoverflow问题的回答,了解如何使用此类的工作示例。是否使用WebRequest,而不是出于某种原因的选项?Jamie请参阅将您的评论作为答案转发,我将其作为答案发布。很高兴我能帮上忙。使用WebRequest,出于某种原因不是一个选项吗?Jamie看到将您的评论作为答案转发,我将其作为答案发布。很高兴我能帮忙。
...
HINTERNET hRequest = HttpOpenRequest(hConnect, "POST","/BM-Login/auth-cup", NULL, NULL, accept, secureFlags, 0);
DWORD dwFlags;
DWORD dwBuffLen = sizeof(dwFlags);
InternetQueryOption (hRequest, INTERNET_OPTION_SECURITY_FLAGS,
(LPVOID)&dwFlags, &dwBuffLen);
dwFlags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA;
dwFlags |= SECURITY_FLAG_IGNORE_REVOCATION;
dwFlags |= SECURITY_FLAG_IGNORE_CERT_DATE_INVALID;
dwFlags |= SECURITY_FLAG_IGNORE_CERT_CN_INVALID | SECURITY_FLAG_IGNORE_WRONG_USAGE;
InternetSetOption (hRequest, INTERNET_OPTION_SECURITY_FLAGS,
&dwFlags, sizeof (dwFlags) );
...