정말 내 계약에 추가 매개 변수를 추가하지 않고 WCF 서비스에 토큰을 전달할 수 있어야합니다. 예를 들어 나중에 내 서비스에서 사용할 수 있도록 숫자와 같은 값을 지정해야합니다.토큰을 WCF 서비스에 전달
2
A
답변
1
이 문제는 맞춤 헤더를 사용하여 해결됩니다.
당신과 같이 클라이언트에 사용자 정의 헤더를 지정할 수 있습니다
IContextChannel contextChannel = (IContextChannel)myServiceProxy;
using (OperationContextScope scope = new OperationContextScope(contextChannel))
{
MessageHeader header = MessageHeader.CreateHeader("PlayerId", "", _playerId);
OperationContext.Current.OutgoingMessageHeaders.Add(header);
act(service);
}
을 서비스에 당신이이 값을 얻을 수 있습니다 : 또한 사용자 정의를 설정하는 방법에 대한 this question를 참조
private long ExtractPlayerIdFromHeader()
{
try
{
var opContext = OperationContext.Current;
var requestContext = opContext.RequestContext;
var headers = requestContext.RequestMessage.Headers;
int headerIndex = headers.FindHeader("PlayerId", "");
long playerId = headers.GetHeader<long>(headerIndex);
return playerId;
}
catch (Exception ex)
{
this.Log.Error("Exception thrown when extracting the player id from the header", ex);
throw;
}
}
을 헤더를 구성 파일을 통해.
2
한 가지 방법은 WCFExtras을 사용하고 비누 머리글에 값을 넣는 것입니다.
[SoapHeader("MyToken", typeof(Header), Direction = SoapHeaderDirection.In)]
[OperationContract]
string In();
이렇게하면 WSDL에서 서비스 동작에 필요한 토큰을 분명하게 나타낼 수 있습니다.
또 다른 옵션은 HTTP headers을 사용하는 것입니다.이 방법은 메소드를 전혀 고려하지 않고 수행 할 수 있습니다. 단점은 토큰이 WSDL에 나타나지 않으므로 서비스가 WSDL에 의해 더 이상 완전히 기술되지 않는다는 것입니다.
관련 문제
- 1. 상관 토큰을 WCF 서비스에 전달 하시겠습니까?
- 2. WCF 서비스에 개체 전달
- 3. 배열을 WCF 서비스에 전달
- 4. WCF 서비스에 WHERE/절 전달
- 5. FormsAuthentication 쿠키를 WCF 서비스에 전달
- 6. WCF WCF 서비스에 사용자 이름 토큰을 보내는 방법
- 7. WCF 서비스에 전달 된 잘못된 URI 처리
- 8. wcf 서비스에 byte [] 배열 매개 변수 전달
- 9. Excel VBA에서 WCF 서비스에 배열 인수 전달
- 10. 서비스에 ADFS 토큰을 전달하십시오.
- 11. WCF 서비스에
- 12. WCF 서비스에 대한 요청의 헤더에 보안 토큰을 추가하는 방법은 무엇입니까?
- 13. 부트 스트랩 토큰을 사용하여 WCF 서비스에 올바르게 연결하는 방법
- 14. 보안 토큰을 전달하십시오. WCF
- 15. ClaimsPrincipal이 WCF 서비스에 도달하면 null입니다.
- 16. csrf 토큰을 스트라이프에 전달
- 17. Windows Workflow WCF 서비스에 사용자 지정 개체 전달
- 18. JQuery WCF 서비스에 게시
- 19. WCF 서비스에 파일 게시
- 20. WCF 서비스에 인증 추가
- 21. Silverlight에서 WCF 서비스에 액세스하십시오.
- 22. WCF 서비스에 데이터 주입
- 23. Linq에 WCF 서비스에
- 24. WCF 서비스에 메서드가 없습니다.
- 25. PCL에서 WCF 서비스에 액세스
- 26. 파이썬 서비스에 인수 전달
- 27. Android : 데이터를 서비스에 전달
- 28. 데이터를 Windows 서비스에 전달
- 29. 지속적인 서비스에 데이터 전달
- 30. 사용자 기밀로 모바일 클라이언트에서 WCF 서비스에 액세스
오 대단한 질문 –