0

도메인 서비스를 제외한 인증 된 사용자에게만 WCF 및 WCF-RIA 도메인 서비스가 혼합 된 폴더의 보안을 제한하려고합니다. 폴더 이름은 "서비스"이며 다음이 포함되어web.config 혼합 WCF 및 도메인 서비스를 포함하는 폴더 구성

/Services/Service1.svc 
/Services/Service2.svc 
/Services/Service3.svc 
/Services/AuthenticationService.vb 

대신 개별적으로 각 서비스를 지정, I 폴더에 대한 익명 사용자 액세스를 거부하고 하나 개의 서비스에 대한 익명 액세스를 허용하고 싶습니다. 컴파일 후에 AuthenticationService.vb가 존재하지 않으므로 위치 경로에 무엇을 사용해야할지 모르겠습니다.

이 내 현재의 web.config는 모습입니다 : 나는 또한 경로로 "Services/AuthenticationService" 시도했다, 그러나 그것은 작동하지 않았다

<location path="Services"> 
    <system.web> 
     <authorization> 
     <deny users="?"/> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="Services/AuthenticationService.vb"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 

. path=에 어떤 값을 사용해야합니까?

답변

1

서비스가 포함 된 폴더를 보호하지 마십시오. 보안 바인딩을 사용하여 서비스 자체를 보호하십시오. 나는 이것을 수행하는 방법을 설명하는 written a blog post을 가지고있다.

+0

사실, 당신은 하나의 디렉토리에 대해 할 수 있습니다. 인증 된 사용자 만 허용하고 익명 사용자를 차단하는 폴더에는 아무런 문제가 없습니다. 내 문제는 "AuthenticationService.vb"가 작동하지 않고 "AuthenticationService"가 아니므로 익명 사용자를 위해 AuthenticationService.vb에 대한 액세스를 허용하고 있습니다. – davron12

+0

"drive by"답변을 잘못 작성하여 죄송합니다. 추가 반영시, 나는 이것을 할 수있는 더 좋은 방법이 있다는 것을 깨달았습니다. 내 대답을 업데이트했습니다. –

+0

감사합니다. 귀하의 솔루션은 매우 흥미롭고 유용 할 수 있습니다. 그러나 WCF 인증을 구현하는 방법을 묻지는 않습니다. 이 경우 여러 개발자가 프로젝트에서 작업하고 있기 때문에 전체 폴더를 보호하여 개발자가 새로운 서비스에 인증을 추가하는 것을 놓치지 않고 모든 사용자가'Services/AuthenticationService.vb '그래서 그들은 로그인 할 수 있습니다. 'AuthentcationService.vb'에 대한 경로는 사이트를 빌드 한 후에 가상 위치 (.dll로 컴파일되고 .vb 파일이 제거됨)가 될 때 무엇이되어야합니까? – davron12