0

두 개의 종점 WsHttpBinding 및 NetTcpBinding이 있고 서비스가 폼 인증을 사용하는 WCF 서비스를 사용하고 있습니다. 서비스는 IIS 7에서 호스팅됩니다.WCF 서비스의 NetTcpBinding에 대한 양식 인증

이것은 WsHttpBinding과 완벽하게 작동하지만 NetTcpBinding에서는 실패합니다.

FormsAuthentication.SetAuthCookie("COOKIENAME", false); 

을 그리고 예외는 다음과 같습니다 :

이 문 아래에 실패

Object reference not set to an instance of an object. 

이 당신의 아이디어를 공유하시기 바랍니다.

답변

0

양식 인증에는 프로토콜 자체에서 지원하지 않는 쿠키/세션이 필요합니다. 따라서 폼 인증은 WCF 서비스의 NetTcpBinding에서 구현할 수 없습니다.

0

옵션 1 :

As an Alternative:

  • System.IdentityModel & System.IdentityModel.Selectors뿐만 아니라 WCF 어셈블리에 대한 참조를 추가합니다.
  • 당신이 Message.ClientCredentialTypeMessageCredentialType.UserName-
  • UserNamePasswordValidator에서 파생 된 유형을 만들고있는 유일한 방법을 구현 설정
  • 바인딩에 메시지 보안 모드를 설정합니다. 사용자 이름/암호 쌍이 유효성을 검사하지 않으면 SecurityTokenException을 throw해야합니다. 서비스 호스트 인스턴스의 자격 증명 속성에

설정 :

  • UserNameAuthentication.UserNamePasswordValidationMode
  • UserNameAuthentication.CustomUserNamePasswordValidatorUserNamePasswordValidationMode.CustomUserNamePasswordValidator 유도 된 클래스의 새로운 인스턴스.
  • 가 클라이언트 측 인증 대화 상자에 관해서는 ServiceCertificate.SetCertificate()

로 서비스 인증서를 설정, 당신은 하나를 만들 수 있습니다 당신이 처음 사용/프록시를 열기 전에 자신과 프록시에는 proxy.ClientCredentials.UserName.UserName & proxy.ClientCredentials.UserName.Password을 설정합니다. 또는 System.ServiceModel.Dispatcher.IInteractiveChannelInitializer을 구현하여 사용자 고유의 대화 형 초기화 UI를 구현하는 방법을 확인할 수 있습니다.

옵션 2 :

Another Alternative이 소리가 더 많이 ... 수행 할 작업을 같이

내가 이전 게시물에 대한 답변을 제공하는 이유는 무엇 Passing FormsAuthentication cookie to a WCF service이 - 대답을 찾고있는 사람이 될 수 있기 때문이다. 희망이 도움이됩니다.