DLL 참조는 로컬 아드먼 Windows 사용자에 가장하는 경우 "Access Denied"로 실패합니다.

StackOverflow https://stackoverflow.com/questions/661081

문제

우리는 WCF와 가장하는 서비스를 사용하고 있습니다.

사용자는 Active Directory 시스템의 일부인 자격 증명으로 클라이언트 응용 프로그램에 로그인 할 수 있습니다.

사용자 로그인은 최저 서비스 측면입니다.

로그인 한 사용자가 호스트 컴퓨터에서 로컬 관리자로 설정되면 제대로 작동합니다.

그러나 문제는 비정상적인 (표준) 사용자 일 때 발생합니다. 우리는 "DLL 중 하나"가 거부 된 것으로 예외를 알 수 있습니다. (모든 DLL에서 발생합니다)

도움이 되었습니까?

해결책

이것은 실제로 배포 환경에 대한 간단한 권한 문제였습니다.

사용 코드 액세스 보안 정책 도구 (caspol.exe) 올바른 권한을 적용하는 문제였습니다. 사용 방법 가이드가 있습니다 MSDN.

실제 명령 줄 문자열이있었습니다

caspol.exe -addgroup 1 -strong -file d : deployment_location wcfservicehost.exe -noversion fulltrust

이것은 서비스 모음에서 수행되었습니다. 우리의 버전 번호는 'Noversion'을 사용하여 자주 변경 되었기 때문에 도움이 되었기 때문에 서비스는 우리의 환경에서 FullTrust도 필요했습니다.

다양한 컴퓨터의 수정을 재사용하려면 PowerShell 스크립트 (또는 배치 파일)를 만들고 'PolchgPrompt'매개 변수를 사용하여 프롬프트를 끄면 스크립트가 중재없이 실행할 수 있습니다.

Polchgprompt- "정책 변경을 일으키는 옵션을 사용하여 Caspol.exe가 실행될 때마다 표시되는 프롬프트를 활성화하거나 비활성화합니다."

스크립트 구조 :

CasPol.exe -polchgprompt off

--all the individual service calls--
CasPol.exe -addgroup 1 -strong -file D:\deployment_location\WcfServiceHost.exe -noname -noversion FullTrust
...

CasPol.exe -polchgprompt on
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top