Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Запуск приложения от имени Администратора Добавлено: 20.01.08 23:56  

Автор вопроса:  NikolaZ
Долго искал, так и не нашел ни где - как можно запустить приложение созданное на VB.NET от имени другого пользователя. А точнее чтобы оно автоматически запускалось от его имени???? Помогите пожалуйста. Если создать ярлык - можно запускать от имени, но там требуется постоянный ввод пароля и имени при запуске - это не подходит.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 21.01.08 15:55
System.Diagnostics.Process.Start

там указывается логин и порол

Ответить

Номер ответа: 2
Автор ответа:
 NikolaZ



Вопросов: 2
Ответов: 1
 Профиль | | #2 Добавлено: 21.01.08 17:09
Идея неплохая, и видимо ничего другого не придумать, но как применить это к разрабатываемому приложению, если учесть что оно и должно сразу запускаться под указанным LOGIN/PASS, да еще и создать PASS в System.Security.SecureString ????

Ответить

Номер ответа: 3
Автор ответа:
 Alexandrus



ICQ: 496782368 

Вопросов: 18
Ответов: 312
 Web-сайт: starsorion.com
 Профиль | | #3
Добавлено: 21.01.08 17:23
Можно воспользоваться средствами винды для запуска от имени произвольного пользователя. Но необходимо сначала настроить ярлык...
А именно:
Имеем ярлык для запуска проги...
Вызываем его свойства и пишем(в поле "Объёкт";):
%windir%\system32\runas.exe \savecred \user:administrator путь_до_проги_и_её_имя

Далее запускаем...при первом запуске будет запрошен пароль и при правильном его вводе сохранён.(При вводе пароль не отображается) При дальнейших запусках, ввод пароля запрошен не будет. Не работает в Windows Home. Вернее работает ,но криво. Каждый раз запрашивает пароль.

Ответить

Номер ответа: 4
Автор ответа:
 Георгич



Вопросов: 16
Ответов: 52
 Профиль | | #4 Добавлено: 23.01.08 00:03
Похожую проблему, в своей проге, я решил так.
Прога создано под учётной записью администратора, далее в программе создан раздел в меню, назначение допуска пользователей к данной проге.
Когда разрешаешь допуск (причём можно дать не полный допуск), то у пользователя создаётся шифрованный файл с личными параметрами администратора (пароль, домен, имя и так далее). В итоге при запуске программы получается так, (используя System.Security.Principal):
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim Личность As WindowsIdentity
        Личность = WindowsIdentity.GetCurrent

        ;Dim Принципиал As New WindowsPrincipal(Личность)
        If Принципиал.IsInRole(WindowsBuiltInRole.Administrator) = True Then

‘/если текущий пользователь администратор. то Запусти программу в нужном тебе виде


Else ‘/ если текущий пользователь не администратор то , если существует файл,(к примеру : Dim ПрофильПользователя As System.Environment
Dim ПутьПрофПольз As String

        ' ПутьПрофПольз = ПрофильПользователя.GetEnvironmentVariable("USERPROFILE";).ToString()

If System.IO.File.Exists(ПутьПрофПольз & “\Мой_шифрованный_файл)

Расшифруй файл по указанному пути, используя полученную информацию из файла
Произведи олицетворение пользователя (присвоить текущему пользователю учётную запись администратора ) Dim NewIdentity As WindowsIdentity
                NewIdentity = ПолучитьКонкретногоПользователя(UserName, Domain, Password)

                ;Dim NewContext As WindowsImpersonationContext

                If NewIdentity Is Nothing Then

                    MsgBox("Не правельные данные";)

                Else
                    NewContext = NewIdentity.Impersonate
                End If


Else ‘/ если файл не существует то

MsgBox("Вам не назначен допуск, запуск программы запрещён";)

Form1.Close()
End If

End Sub

Коротенько примерно так .(код в виде некой подсказки)
Если, нужен подробный код олицетворения могу подкинуть.
И ещё при олицетворении надо позаботиться об ограничении доступа к коду программы и логику проги продумать так , чтобы пользователь не смог лазить туда куда ему не положено, ведь он временно получает права администратора по отношению к данной программе.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам