模拟用户时如何将 SecureZeroMemory 与 LogonUser 一起使用?

Posted

技术标签:

【中文标题】模拟用户时如何将 SecureZeroMemory 与 LogonUser 一起使用?【英文标题】:How do I use SecureZeroMemory with LogonUser when impersonating a user? 【发布时间】:2013-02-28 04:17:27 【问题描述】:

什么时候需要或推荐添加SecureZeroMemory功能?

this MSFT sample for WindowsImpersonationContext 或这些 *** 问题 link link2 都没有提到 SecureZeroMemory 函数。

我应该实现这个功能(或者也许要求接受答案的所有者包含这个功能?)

【问题讨论】:

你不需要使用它。它只是采取的一种措施,使您在使用后不会在内存中保留用户密码。对于 c# 中的相同效果,您可以使用 char 数组和 Array.Clear 函数或 SecureString 类。 【参考方案1】:

SecureZeroMemory,顾名思义,是一种将内存块设置为所有0x00 值的方法,尽管它具有以下特性:

编译器永远不会优化它 ... 实际上,这是我能想到的唯一区别。

正如@user629926 所提到的,SecureString 类虽然使用起来很尴尬,但它是一种在内存中保存string 数据的“安全”方式,而不用担心如果您的应用程序崩溃,有人可以筛选内存转储并在其中找到您的原始敏感数据。

【讨论】:

你没有提到为什么使用这个功能是个好主意还是坏主意,你只是描述了它的功能,这不是问题

以上是关于模拟用户时如何将 SecureZeroMemory 与 LogonUser 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 开发者工具用户代理覆盖在模拟其他浏览器时的效果如何?

关闭 iPhone 模拟器上的键盘

将来自网络服务器的打印队列列为模拟用户时出错

如何在 Blazor 服务器端模拟延迟?

通过表单身份验证从代码隐藏模拟用户

如何测试/模拟反应钩子?