Запуск / остановка службы из ASP. NET страница

Я реализовал веб-страницу (ASP .NET, VB) для запуска / остановки службы Windows.

Я использовал олицетворение, как описано здесь:http://support.microsoft.com/kb/306158

Все нормально, когда страница читает статус сервиса:

_domain = Me.TextBoxDomain.Text
_user = Me.TextBoxUserName.Text
_password = Me.TextBoxPassword.Text
_s = New ServiceController(Constant.ServiceName)
If impersonateValidUser(_user, _domain, _password) Then
    Me.LabelServerStatusValue.Text = _s.Status.ToString    
    undoImpersonation()
Else
    'Error
End If

Проблема возникает, когда страница пытается запустить (или остановить) службу:

_domain = Me.TextBoxDomain.Text
_user = Me.TextBoxUserName.Text
_password = Me.TextBoxPassword.Text
_s = New ServiceController(Constant.ServiceName)
If impersonateValidUser(_user, _domain, _password) Then
    If _s.Status = ServiceControllerStatus.Stopped And _s.Status <> ServiceControllerStatus.StartPending Then
        _s.Start()
        _s.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(5))
    End If
    undoImpersonation()
Else
    'Error
End If

Комментарии:

Исключением является «Доступ запрещен», но олицетворенный пользователь одинаков как для состояния, так и для запуска / остановки.Пользователь - тот же самый пользователь, которого я вошел в ПК. И я могу запустить / остановить пользователя из Сервисной консоли

Любая идея?

Я добавил элемент identity в web.config, и он работает, но я не хочу, чтобы все приложение имитировало пользователя Administrator (это был просто тест):

<identity impersonate="true" userName="domain\user" password="password"/>

Ответы на вопрос(2)

Ваш ответ на вопрос