Windows 인증을 사용할 수있는 웹 사이트가 있습니다. 웹 사이트의 페이지에서 사용자는 데이터베이스로 일부 작업을 수행하는 서비스를 시작할 수 있습니다..Net 2.0 ServiceController.GetServices()
저는 서버의 로컬 관리자이기 때문에 서비스를 시작하는 것이 좋습니다. 하지만 사용자가 테스트를 해본 결과 서비스를 시작할 수 없습니다.
내 질문은 :
는사람은 다른 창들이 현재 로그인되어있는 것보다는 계정 사용 이름으로 지정된 컴퓨터에서 서비스 목록을 얻을 수있는 방법을 알고 있나요?
정말 Windows 그룹에 서비스를 시작하고 내 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()
덕분에
나는 그들의 창 로그인을 기반으로 웹 사이트에 물건을 보여주는거야 때문에 Windows 사용자 이름을 가지고 있습니다. 나는 사용자가 추가 로그인을 갖도록하고 싶지 않았다. – Miles
Windows 계정을 계속해서 인증에 사용할 수 있습니다. IIS 및 ASP.NET 인증 모델에서 통합 인증을 사용한다고 가정합니다. (<인증 모드 = "Windows"/>). 두 가지를 함께 사용할 수 있으며 IIS는 추가 로그인없이 사용자 자격 증명을 협상합니다. – Rich