Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#interop中使用InternetQueryOption?_C#_C++_Interop_Marshalling_Wininet - Fatal编程技术网

如何在C#interop中使用InternetQueryOption?

如何在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,

在我的C#代码中,我想使用InternetQueryOption,它在中定义如下:

在我的C#代码中,我写道:

    [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) );
...