如何在 C# 互操作中使用 InternetQueryOption

How to use InternetQueryOption in C# interop?

本文关键字:InternetQueryOption 互操作      更新时间:2023-10-16

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

BOOL InternetQueryOption(
  __in     HINTERNET hInternet,
  __in     DWORD dwOption,
  __out    LPVOID lpBuffer,
  __inout  LPDWORD lpdwBufferLength
);

在我的 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# 中编写相同的内容?谢谢。(对不起,我的英语很差)

我建议为此使用托管代码,而不是通过互操作执行此操作。看看 WebRequest 类。另外,请查看我对堆栈溢出问题 C# https 登录和下载文件的回答,以获取如何使用此类的工作示例。

相关文章:
  • 没有找到相关文章