如何将凭据传递到计算机,以便可以在其上使用 Microsoft.Win32.RegistryKey.OpenRemoteBaseKey()?
此 .NET API 工作正常,如果我'我尝试在与我位于同一域中的计算机中打开注册表(并且我的登录用户在目标计算机上具有管理员权限)。
如果它是一台域外计算机,并且具有不同的本地管理用户(我确实拥有该用户的密码),那么情况会变得很棘手。
我尝试使用 WNetUseConnection() (在过去,在我想要的是在调用 OpenRemoteBaseKey() 之前读取远程磁盘文件的情况下,它对我很有帮助,但没有骰子 - 我得到了访问被拒绝的异常。
显然,我必须以其他方式传递凭据,但是如何传递呢?
This .NET API works OK if I'm trying to open the Registry in a machine that's in the same domain as I am (and my logged-on user has admin rights on the target machine).
It gets tricky if it's an out-of-domain machine with a different, local administrative user (of whom I do have the password).
I tried to use WNetUseConnection() (which has served me well in the past in situations where what I wanted was to read a remote disk file) prior to calling OpenRemoteBaseKey(), but no dice -- I get an access denied exception.
Clearly, I must pass credentials some other way, but how?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我成功地使用以下代码来访问计算机上的文件:
然后对于部分登录,只需使用:
正如您可能会看到的,“Undo()”将使您不再以该用户身份登录。所以在完成之前不要使用它。但不要忘记使用它!
What I've used successfully to access files on a computer is the following code:
And then for signing in part, just use:
As you might see, "Undo()" will make that you are no longer signed in as that user. So don't use it before you're done. But don't forget to use it!