【问题标题】:VB.NET Execute a form from a form with administrator username and passwordVB.NET 从具有管理员用户名和密码的表单执行表单
【发布时间】:2016-04-15 19:12:00
【问题描述】:

我希望由标准用户使用管理员(域)凭据运行表单。

如果不首先以管理员身份运行它,我认为我无法运行单个表单,但我想知道您是否可以单击表单上的按钮,并且该操作可以启动另一个内置管理员凭据的表单。

【问题讨论】:

  • 管理员权限是每个应用程序,而不是表单
  • 抱歉,我真的不太了解。我猜我的意思是应用程序而不是表单。那么我可以从单独的应用程序(表单)上的按钮运行另一个应用程序(表单)吗??

标签: vb.net forms


【解决方案1】:
Dim ProcessStartInfo As New ProcessStartInfo("C:\path\to\app.exe")

With ProcessStartInfo
    ' The following properties run the new process as administrator
    .UseShellExecute = True
    .Verb = "runas"
    .WindowStyle = ProcessWindowStyle.Normal
    .CreateNoWindow = False
End With

Try
    ' Start the new process
    Process.Start(ProcessStartInfo)
Catch ex As Exception
    ' The user did not allow the application to run as administrator
    MessageBox.Show("Sorry, this application must be run as Administrator.", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try

【讨论】:

  • 对不起,但我认为这不是我要问的。我需要能够在应用程序的表单上单击一个按钮,并让该按钮启动另一个内置管理员凭据的应用程序。我不希望用户只需单击即可,而不需要任何管理员凭据或警告请求。
  • 我可以就这是否可行得到一些意见吗?我把它拼凑在一起,还没有通过任何测试。看起来它正在运行一个 .bat 文件。这可以简单地更改为exe吗? code
  • 我在回答中给出的代码将进入您的按钮单击处理程序,并完全按照您的描述执行...用户被要求批准提升的执行,如果他们拒绝,那就是我的 Try-Catch 出现的地方......它会抛出那个异常和那个 MessageBox,所有这些都在他们点击的按钮的应用程序中。请注意,如果您要运行的应用程序是同一应用程序的另一个实例,请在 Process.Start 之后使用 Application.Exit,这只有在用户接受提升的运行时才会到达。
【解决方案2】:

我可以就这是否可行获得一些意见吗?我把它拼凑在一起,还没有通过任何测试。看起来它正在运行一个 .bat 文件。这可以简单地更改为exe吗?

Imports System.Diagnostics
Imports System.Security

'Password is a SecureString that needs to be built
Dim securePassword as New Security.SecureString()
For Each c As Char In userPassword
    securePassword.AppendChar(c)
Next c


Dim proc as ProcessStartInfo  = new ProcessStartInfo()
proc.FileName = "filelocation.bat"
proc.WorkingDirectory = "your_working_dir"
      proc.UseShellExecute = False
      proc.Domain = userDomain
      proc.UserName = userName
      proc.Password = securePassword
Process.Start(proc)

【讨论】:

  • 不要在回答中提出问题。更新上面的问题,或者创建一个新问题。
猜你喜欢
  • 1970-01-01
  • 2012-11-24
  • 1970-01-01
  • 2014-04-05
  • 1970-01-01
  • 2017-06-28
  • 2021-04-21
  • 1970-01-01
  • 2015-03-07
相关资源
最近更新 更多