'ServiceAccount'에 해당되는 글 1건

  1. 2013.12.24 서비스에 대한 보안컨텍스트 지정

 멤버 이름

 설명

 Localservice

 로컬 컴퓨터에서 권한이 없는 사용자 역할을 하고 모든 원격 서버에 익명 자격 증명을 제시

 하는 계정입니다.

 LocalSystem

 서비스 제어 관리자에서 사용되고 로컬 컴퓨터에 대한 확장된 권한을 가지며 네트워크에서

 컴퓨터 역할을 하는 계정입니다.

 NetworkService

 광범위한 로컬 권한을 제공하고 모든 원격 서버에 컴퓨터의 자격 증명을 제시하는 계정입

 니다.

 User

 네트워크에서 특정 사용자가 정의한 계정입니다.

 ServiceProcessInstaller 인스턴스의  UserName 및 Password 속성 값을 둘 다 설정하지

 않은 경우 ServiceProcessInstaller.Account 멤버에 대한 User를 지정하면 서비스가 설치

 될 때 올바른 사용자 이름과 암호를 묻는 메시지가 표시됩니다.

 

ServiceProcessInstaller 를 초기화할 때 ServiceAccount 열거형을 사용하여 설치할 서비스의 보안 컨텍스트를 지정합니다. 이러한 보안 컨텍스트는 시스템에서 서비스의 권한을 나타내며 네트워크에서 서비스가 작동하는 방식을 나타냅니다. 예를 들어, 서비스가 원격 서버에 컴퓨터의 자격 증명 또는 익명 자격 증명을 제시하는지 여부를 나타냅니다. ServiceAccount 열거형 특정 서비스에 필요한 권한을 정확하게 지정할 수 있도록 다양한 범위의 권한을 제공합니다.

 

LocalSystem 값은 높은 권한의 계정을 정의하지만 대부분의 서비스에는 그와 같은 높은 권한 수준이 필요하지 않습니다. LocalService 및 NetworkService 열거형 멤버는 보안 컨텍스트에 더 낮은 권한 수준을 제공합니다.

 

다음 코드 예제에서는 ServiceAccount 열거형을 통해 시스템 계정의 보안 컨텍스트를 사용하여 새 프로그램을 설치하는 방법을 보여줍니다.

using System;
using System.Collections;
using System.Configuration.Install;
using System.ServiceProcess;
using System.ComponentModel;

[RunInstaller(true)]
public class MyProjectInstaller : Installer
{
    private ServiceInstaller serviceInstaller1;
    private ServiceInstaller serviceInstaller2;
    private ServiceProcessInstaller processInstaller;

    public MyProjectInstaller()
    {
        // Instantiate installers for process and services.
        processInstaller = new ServiceProcessInstaller();
        serviceInstaller1 = new ServiceInstaller();
        serviceInstaller2 = new ServiceInstaller();

        // The services run under the system account.
        processInstaller.Account = ServiceAccount.LocalSystem;

        // The services are started manually.
        serviceInstaller1.StartType = ServiceStartMode.Manual;
        serviceInstaller2.StartType = ServiceStartMode.Manual;

        // ServiceName must equal those on ServiceBase derived classes.
        serviceInstaller1.ServiceName = "Hello-World Service 1";
        serviceInstaller2.ServiceName = "Hello-World Service 2";

        // Add installers to collection. Order is not important.
        Installers.Add(serviceInstaller1);
        Installers.Add(serviceInstaller2);
        Installers.Add(processInstaller);
    }

    public static void Main()
    {
        Console.WriteLine("Usage: InstallUtil.exe [.exe]");
    }
}

 

[출처]http://msdn.microsoft.com/ko-kr/library/system.serviceprocess.serviceaccount(v=vs.110).aspx
[참고]http://msdn.microsoft.com/ko-kr/library/zt39148a(VS.80).aspx
Posted by lI헐헐Il
,