小编fru*_*ela的帖子

使用stackalloc分配的内存初始化

如果我stackallocC#中分配内存,那个内存是否已初始化(带0)
文档没有提到这一点,只说明保留了正确的金额.

在我的测试中,这样的内存默认为0,但这并不意味着它得到了保证.

c# unsafe stackalloc

9
推荐指数
2
解决办法
897
查看次数

如何解密从安全桌面获取的身份验证缓冲区

我正在尝试请求用户在安全桌面上输入凭据,但我找不到解密生成的身份验证缓冲区的方法:

凭证通过以下方式获得:

CREDUI_INFO cui = new CREDUI_INFO()
{
    cbSize = (uint)Marshal.SizeOf(typeof(CREDUI_INFO)),
    pszMessageText = "MyMessage",
    pszCaptionText = "MyCaption",
};

bool save = false;
uint authPackage = 0U;
IntPtr authBuffer;
uint authBufferSize;

uint error = CredUIPromptForWindowsCredentials(
                ref cui,
                0U,
                ref authPackage,
                IntPtr.Zero,
                0U,
                out authBuffer,
                out authBufferSize,
                ref save,
                CREDUIWIN_SECURE_PROMPT);
Run Code Online (Sandbox Code Playgroud)

凭据解压缩:

uint userBufferSize = CREDUI_MAX_USERNAME_LENGTH;
uint domainBufferSize = CRED_MAX_STRING_LENGTH;
uint passwordBufferSize = CREDUI_MAX_PASSWORD_LENGTH;
StringBuilder userBuffer = new StringBuilder((int)userBufferSize);
StringBuilder domainBuffer = new String((int)domainBufferSize);
IntPtr passwordBuffer = Marshal.AllocCoTaskMem((int)passwordBufferSize);

bool success = …
Run Code Online (Sandbox Code Playgroud)

c# winapi credentials

5
推荐指数
1
解决办法
934
查看次数

标签 统计

c# ×2

credentials ×1

stackalloc ×1

unsafe ×1

winapi ×1