在我目前为客户开发的小型应用程序中,我需要询问用户他的 Windows 登录用户名、密码和域,然后使用这些信息系统.诊断.进程.启动启动一个应用程序。
我有一个带有 UseSystemPasswordChar 的文本框来屏蔽输入的密码。
我需要一个系统.安全.SecureString将密码提供给系统.诊断.进程.启动.
如何将输入的文本转换为安全字符串,而不是逐个字符地进行转换?或者:是否有更好的窗口控件来询问用户密码,并将输入的文本返回为 SecureString?
尝试查看安全密码文本框 http://weblogs.asp.net/pglavich/archive/2006/02/26/439077.aspx自定义控件。您是否正在尝试执行类似于“运行方式”类型命令的操作,其中您尝试以与当前登录用户不同的用户身份运行该进程?如果没有,您应该能够只调用 Process.Start 并让它获取当前用户的凭据。
另外,还请查看以下资源:
- CredUIPromptForCredentials http://msdn.microsoft.com/en-us/library/aa375177.aspx
-
CredUIPromptForWindowsCredentials http://msdn.microsoft.com/en-us/library/aa375178(VS.85).aspx(Vista 和 Server 2008)
- 微软支持文章 http://support.microsoft.com/kb/180548
- 登录用户功能 http://msdn.microsoft.com/en-us/library/aa378184.aspx
- 登录用户Ex函数 http://msdn.microsoft.com/en-us/library/aa378189(VS.85).aspx
- 创建进程为用户 http://msdn.microsoft.com/en-us/library/ms682429(VS.85).aspx
- 使用登录创建进程 http://msdn.microsoft.com/en-us/library/ms682431(VS.85).aspx
- 使用TokenW创建进程 http://msdn.microsoft.com/en-us/library/ms682434(VS.85).aspx
最好的选择可能是使用一些互操作 p/inovke 代码来调用 CredUIPromptForCredentials 以显示标准 Windows 对话框,然后使用该信息来调用 Process.Start,或者更有可能调用 CreateProcessAsUser 函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)