У меня есть приложение vb.net clickonce, которое будет использоваться персоналом низкого уровня без прав администратора. Однако само приложение должно сохранять файлы в папку на сервере, которая скрыта и разрешает доступ на чтение/запись только администраторам. Мне нужно, чтобы эти пользователи могли взаимодействовать с этой папкой с помощью приложения, не давая им возможности просматривать папку самостоятельно. Я пробовал использовать несколько методов олицетворения, ни один из них не работал.
http://weblogs.asp.net/ralfw/archive/2003/11/24/39479.aspx. Он по-прежнему говорит, что доступ запрещен, хотя когда я запускаю Return System.Security.Principal.WindowsIdentity.GetCurrent().Name, он возвращает учетные данные администратора.
Я попытался создать другое приложение, которое просто выполняет StartProcess с использованием учетных данных администратора, но файл, который я пытаюсь запустить, является .application, а не .exe, поэтому я получаю «Указанный исполняемый файл не является допустимым приложением для этой ОС». Платформа" ошибка.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim file_name As String = "file path to .application file"
Dim p As New ProcessStartInfo(file_name)
p.UseShellExecute = False
p.Domain = "domain"
p.UserName = "administrator"
p.Password = New System.Security.SecureString()
For Each c As Char In "password"
p.Password.AppendChar(c)
Next
Process.Start(p)
End Sub
Я попытался выполнить StartProcess для Internet Explorer и указать в качестве аргумента URL-адрес файла .application, который работает до тех пор, пока я не попытаюсь предоставить учетные данные, отличные от моих собственных, и не получу ошибку «не могу найти файл». Если убрать все с п.Имя пользователя на Далее, то приложение открывается, но как пользователь а не администратор. Ниже приведен код для этой попытки.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim p As New ProcessStartInfo(My.Computer.FileSystem.SpecialDirectories.ProgramFiles + "\Internet Explorer\IEXPLORE.EXE")
p.UseShellExecute = False
p.Domain = "domain"
p.UserName = "administrator"
p.Password = New System.Security.SecureString()
For Each c As Char In "password"
p.Password.AppendChar(c)
Next
p.Arguments = ("URL to .application file")
Process.Start(p)
End Sub
Я совершенно не понимаю, как запустить это приложение от имени администратора, чтобы пользователи могли просматривать файлы и сохранять файлы в этом защищенном месте, используя только это приложение.