У меня есть сайт, на котором есть проверка подлинности Windows. На странице на веб-сайте пользователи имеют возможность запускать службу, которая делает некоторые вещи в базе данных..Net 2.0 ServiceController.GetServices()
Это нормально работает для меня, чтобы начать сервис, потому что я локальный администратор на сервере. Но я просто попросил пользователя проверить его, и они не могут запустить службу.
Мой вопрос:
Кто-нибудь знает способ получить список услуг на указанном компьютере по имени, используя учетную запись различные окна, чем тот, который они в настоящее время вошли в систему с?
Я действительно не хочу, чтобы добавить все пользователь, которые необходимо запустить службу в окне группы и установить их все к локальному администратору на моем сервере IIS .....
Вот некоторые из кода, который у меня есть:
public static ServiceControllerStatus FindService()
{
ServiceControllerStatus status = ServiceControllerStatus.Stopped;
try
{
string machineName = ConfigurationManager.AppSettings["ServiceMachineName"];
ServiceController[] services = ServiceController.GetServices(machineName);
string serviceName = ConfigurationManager.AppSettings["ServiceName"].ToLower();
foreach (ServiceController service in services)
{
if (service.ServiceName.ToLower() == serviceName)
{
status = service.Status;
break;
}
}
}
catch(Exception ex)
{
status = ServiceControllerStatus.Stopped;
SaveError(ex, "Utilities - FindService()");
}
return status;
}
Мое исключение относится ко второй строке блока try. Вот ошибка:
System.InvalidOperationException: Cannot open Service Control Manager on computer 'server.domain.com'. This operation might require other privileges. ---> System.ComponentModel.Win32Exception: Access is denied --- End of inner exception stack trace --- at System.ServiceProcess.ServiceController.GetDataBaseHandleWithAccess(String machineName, Int32 serviceControlManaqerAccess) at System.ServiceProcess.ServiceController.GetServicesOfType(String machineName, Int32 serviceType) at TelemarketingWebSite.Utilities.StartService()
Спасибо за помощь/Информация
я должен иметь имя окна, потому что я показываю вещи на веб-сайте на основе их окна входа в систему. Я не хотел, чтобы у пользователя был дополнительный логин. – Miles 2008-10-17 15:30:58
Вы можете продолжать использовать свою учетную запись Windows для аутентификации. Я предполагаю, что вы используете встроенную проверку подлинности в IIS и модели аутентификации ASP.NET. (<режим аутентификации = "Windows" />). Вы можете использовать оба метода вместе, и IIS по-прежнему будет согласовывать учетные данные пользователя без дополнительного входа. – Rich 2008-10-17 22:34:57