2011-03-29 1 views
1

현재 Windows 사용자는 C# (LocalSystem으로 실행)으로 작성되어 사용자 계정을 만들고, 가장에 필요하며 DirectoryEntry를 사용하여 사용자/암호 및 관련 UserFlags를 추가합니다. 그런 다음이 계정을 사용하여 LogonUser() 기능을 사용하여 일부 작업 (가장을 사용)을 수행하기 만하면됩니다.가장에 사용 된 계정의 로그온 만 방지하려면 어떻게해야합니까?

그러나이 계정은 내 서비스로 가장해야하며 사용자는 로컬로 또는 네트워크를 통해 로그인 할 수 없어야합니다 (자격 증명이있는 경우에도).

"로컬에서 로그온 거부"및 "네트워크에서이 컴퓨터에 대한 액세스 거부"에 대한 로컬 정책을 설정하고 내 서비스가 만드는 사용자를 추가했습니다. 이제 가장으로 다음과 같은 오류가 발생합니다. 로그온 실패 :이 컴퓨터에서 요청한 로그온 유형이 사용자에게 부여되지 않았습니다. (1385)

이렇게 올바른 방법은 아닙니다. 계정을 보안 잠금 기능으로 설정하여 내 서비스에서 가장을 목적으로 만 사용할 수 있고 다른 사람이 계정에 로그온 할 수 없도록 할 수 있습니다 (모든 자격 증명이있는 경우에도 해당).

LSA에는 사용할 수있는 것이 있습니까? 또는 계정을 만들 때와 비슷한 DirectoryEntry 코드를 사용합니까? 계정은 존재하지만 대화 형 로그온을 허용하지 않는 방법이 있습니까?

도움을 주시면 감사하겠습니다. 감사합니다.

+2

많은 시스템 관리자가 serverfault.com에 접속 해보십시오. – NotMe

+0

서비스가 원래 C#으로 작성되었지만 현재 질문하는 것이 프로그래밍 질문이 아닙니다. 이게 serverfault.com으로 옮길 것을 권합니다. –

+0

Stack Overflow에 오신 것을 환영합니다! 질문 제목에 태그를 넣지 마십시오. – Will

답변

0

"네트워크 서비스"계정으로 서비스를 실행하고 해당 도메인 리소스에 대한 서버 액세스 권한을 부여 할 수 있습니다. 그 외에도 사용자 계정으로 문제를 해결할 방법이 있는지 확신 할 수 없습니다.

+0

슬프게도 작동하지 않습니다 - 실제 사용자를 모방해야합니다 ... 사용자를 사용하는 유일한 방법은 가장을 통한 것이고 실제 사용자가 로그온 한 것을 거부하는 것입니다. – Shaitan00