using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel.Dispatcher; using System.ServiceModel.Channels; using DeiNiu.Utils; namespace WcfClientAuthentication { public class AuthenticationInspector : IClientMessageInspector { public void AfterReceiveReply(ref System.ServiceModel.Channels.Message reply, object correlationState) { } public object BeforeSendRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel) { MessageHeader hdUserId = MessageHeader.CreateHeader("UserId", "www.deinu.com", LoginInfo.UserId); MessageHeader hdToken = MessageHeader.CreateHeader("Token", "www.deinu.com", LoginInfo.Token); request.Headers.Add(hdUserId); //request.Headers.Add(hdPassword); //为了安全性可以不传密码 request.Headers.Add(hdToken); // LogHelper.debug( "AuthenticationInspector",string.Format("request: {2},set UserId : {0},set token: {1}", LoginInfo.UserId,LoginInfo.Token,request.ToString())); return null; } } }