我已经实现了wcf服务,并将使用TCP进行传输。我想知道,如何将安全令牌(在本例中为Guid)粘贴到对wcf服务发出的请求的标头上?谁能在这方面帮助我,或者给我任何方法的建议?还是我应该学习任何具体概念?

最佳答案

操作上下文提供可用的传入和传出标头的集合
通过IncomingMessageHeaders和OutgoingMessageHeaders属性:

public sealed class OperationContext : ...
{
   public MessageHeaders IncomingMessageHeaders {get;}
   public MessageHeaders OutgoingMessageHeaders {get;}
   //More members
}


每个集合的类型为MessageHeaders(即,MessageHeader的集合
对象):

public sealed class MessageHeaders : ...
{
   public void Add(MessageHeader header);
   public T GetHeader<T>(int index);
   public T GetHeader<T>(string name,string ns);
   //More members
}

public abstract class MessageHeader
{...}

public class MessageHeader<T>
{
   public MessageHeader();
   public MessageHeader(T content);
   public T Content {get;set;}
   public MessageHeader GetUntypedHeader(string name,string ns);
   //More members
}


您可以使用它将Guid传递到邮件头中。

//Client code:
MessageHeader<Guid> tokenHeader = new MessageHeader<Guid>(someGuid);
MyContractClient proxy = new MyContractClient();
using(OperationContextScope contextScope =
                  new OperationContextScope(proxy.InnerChannel))
{
   OperationContext.Current.OutgoingMessageHeaders.Add(
                  tokenHeader .GetUntypedHeader("Guid","System"));
   proxy.MyMethod();
}
proxy.Close();

关于c# - 如何在向WCF服务发出的请求的 header 中添加安全 token ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8840795/

10-11 02:12