У меня есть приложение von.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, который работает, пока я не попытаюсь предоставить учетные данные, отличные от моих, и не получу сообщение об ошибке «Не удается найти файл». Если я удаляю все из p.Username в Next, приложение открывается, но как пользователь, а не администратор. Ниже приведен код для этой попытки.
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
Я в полном недоумении от того, как запустить это приложение от имени администратора, чтобы пользователи могли просматривать файлы и сохранять файлы в этом защищенном месте, используя только это приложение.