원격 관리자가 로컬 또는 도메인 자격 증명을 사용하여 WCF TCP 바인딩을 통해 내 Windows 서비스를 제어하게 할 수 있습니다. 이렇게하려면 원격 사용자를 관리자로 인증해야합니다. 주 사용자/역할을 확인할 수 있지만 원격 사용자에게 올바른 사용자 정보/토큰을 묻는 방법을 모르겠습니다.제한된 원격 WCF 서비스 : Windows 인증 프롬프트
이것은 내 이전 질문 Restricting WCF TCP endpoint to Administrators에 관한 것입니다. 액세스 거부 결과가 그래서 반품 된 경우 나 Windows 인증을위한 원격 사용자에게 메시지를 표시하려면 어떻게
if (!System.Threading.Thread.CurrentPrincipal.IsInRole("Administrators"))
return MethodResult.AccessDenied;
// haven't tested if it's the service thread or the remote user yet.
대신 내 제한된 서비스 방법에 [PrincipalPermission(SecurityAction.Demand, Role = "Administrator")]
을 추가하고 SecurityException
잡기, 내가 그것을 확인할 수 있습니다 보인다 다른 교장으로 연결을 다시 시작 하시겠습니까?
물론 원격 사용자의 클라이언트 응용 프로그램에서 변경해야합니다. 아마도 더 깨끗한 WCF 방법이있을 것입니다.
편집 : "그물 가장"을 검색는 CodeProject의에 this를 알려준. 볼 기회가 없었지만, 이것이 갈 길일 수 있습니다.
감사합니다. [이 질문] (http://stackoverflow.com/questions/1596161/how-to-show-authentication-dialog-in-c-net-3-5-sp1)는 오래된 표정을 가지고 있지만 기본 프롬프트를 제공합니다. –