当有人试图运行我的.net桌面应用程序时,如何强制显示“运行方式”表单?

时间:2010-10-31 06:52:16

标签: .net windows privileges authentication runas

当用户尝试运行我的应用程序(C#.NET 4,在Win XP上)时,我需要弹出“运行方式”窗体,以便他可以轻松地以其他用户身份登录。它可能位于应用程序本身(在C#代码中)或某些其他前面的批处理/ exe文件(“启动程序”)等中。我没有找到任何方法来弹出这个表格。怎么可能呢?

感谢。

2 个答案:

答案 0 :(得分:1)

在清单中使用<requestedExecutionLevel level="requireAdministrator"/>,您可以强制您的应用程序以管理员身份运行。但是,这不包括RunAs对话框。如果从快捷方式查看设置,您会发现没有选项可以处理此问题。

当前用户具有管理权限时,所描述的设置将只是要求用户以管理员身份运行它。但是,当前用户没有此权限时,它会要求用户输入管理帐户的详细信息,我认为这与您正在寻找的内容相近。

答案 1 :(得分:1)

如果你想这样做,最好的办法是创建一个调用CredUIPromptForWindowsCredentials的引导程序。这将创建一个对话框,提示用户输入凭据。获得凭据后,请使用Process.Start的重载,其中包含CredUIPromptForWindowsCredentials提供的用户名和密码。需要一点Interop。