wsHttpBinding을 사용하는 IIS 8에서 호스팅되는 간단한 WCF 서비스가 있습니다. 나는 사용자 (도메인 계정)가 서비스에 액세스 할 수 있도록 제어 할 수 있기를 원합니다. 어떻게해야합니까? 아마도 이것을 수행하는 몇 가지 방법이있을 것입니다. web.config 파일에서 계정을 정의 할 수 있습니까? 아니면 IIS에서이 계정을 설정할 수 있습니까?wsHttpBinding, 특정 계정에 서비스 액세스 허용
0
A
답변
1
PrincipalPermission을 사용하여 제어 할 수 있습니다.
체크 아웃이 답변 : WCF security with Domain Groups
그리고 여기 당신은 MSDN에 잡을 수 있습니다 http://msdn.microsoft.com/en-us/library/ms735093(v=vs.110).aspx
1
당신은 사용자 정의 인증 프로그램을 사용할 수 있습니다.
UserNamePasswordValidator을 System.IdentityModel.Selectors 네임 스페이스에서 상속해야합니다. 서버에 대한
public class ServiceValidator : UserNamePasswordValidator
{
public override void Validate(string userName, string password)
{
if (string.IsNullOrWhiteSpace(userName) || string.IsNullOrWhiteSpace(password))
{
throw new SecurityTokenException("Username and password required");
}
else
{
if (Authenticate(userName, password))
{
// no need to do anything else if authentication was successful. the request will be redirected to the correct web service method.
}
else
{
throw new FaultException("Wrong username or password ");
}
}
의 Web.config은 :
<behaviors>
<serviceBehaviors>
<behavior name="SomeServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="MyApp.ServiceValidator, MyApp" />
<serviceCertificate findValue="CertificateNameHere" storeLocation="LocalMachine" storeName="TrustedPeople" x509FindType="FindBySubjectName" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<bindings>
<wsHttpBinding>
<binding name="RequestUserName">
<security mode="Message">
<message clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
</bindings>
이것은 당신이 시간 것의 기본이다 구현할 수 있습니다. 그런 다음 Authenticate/Authorize 메서드에서 웹 서비스 메서드에 대한 호출을 허용해야하는 사용자를 제한 할 수 있습니다.
관련 문제
- 1. 모든 Google Analytics 계정에 Google 서비스 계정 액세스 허용
- 2. 앱 엔진 서비스 계정에 캘린더 수정 허용
- 3. 인터넷을 통한 wcf 서비스 wsHttpBinding
- 4. 특정 사용자 쓰기 액세스 허용
- 5. htaccess는 특정 사용자에게 액세스 허용
- 6. 익명 액세스 오류로 WsHttpBinding 및 Windows 인증이 실패한 WCF 서비스
- 7. .net에서 wsHttpBinding WCF 서비스 설정을 돕기
- 8. Azman에 ASP.NET 네트워크 서비스 계정 액세스 허용
- 9. 하나의 앱에만 웹 서비스 액세스 허용
- 10. 서비스 계정에 대한 oauth2
- 11. Google 드라이브 서비스 계정에 Google 앱을 사용하지 않고 Google 계정에 대한 액세스 권한을 부여하려면 어떻게해야하나요?
- 12. 특정 HTML 페이지에서만 이미지 액세스 허용
- 13. HTACCESS의 특정 URL에서만 파일에 액세스 허용
- 14. 특정 URL에서만 웹 사이트에 대한 액세스 허용
- 15. 특정 FB 사용자에게만 앱 액세스 허용
- 16. PHP 특정 리퍼러 URL/페이지에만 액세스 허용
- 17. htaccess의 특정 디렉토리에 대한 액세스 허용
- 18. 특정 쿼리 문자열이있을 때 액세스 허용
- 19. 특정 IP 주소에 대한 디렉토리 액세스 허용
- 20. node.js의 특정 IP 주소에서만 디렉토리에 액세스 허용
- 21. WCF에있는 wsHttpBinding 및 해제 익명 액세스
- 22. 관리자 계정에 대한 추가 매개 변수 허용
- 23. Google 드라이브의 서비스 계정에 로그인해야합니다.
- 24. 도메인 전체 권한을 서비스 계정에 위임
- 25. SharePoint2010의 서비스 계정에 내 계정을 가장하는 방법
- 26. wsHttpBinding 사용
- 27. 1 스크립트/위치의 파일에만 액세스 허용
- 28. BasicHttpBinding과 WsHttpBinding 사이의 프록시
- 29. 특정 사용자에 대해서만 원격 연결 허용
- 30. JUnit 테스트에서 POP3 계정에 액세스
가능한 복제본 http://stackoverflow.com/questions/13326365/best-way-to-limit-wcf-service-to-specific-user-accounts –