2011-09-25 125 views
4

我需要每个请求的WCF服务如何从WCF请求拦截Authorization头

认证
 

public class AuthenticationInterceptor : RequestInterceptor 
    { 
     public AuthenticationInterceptor() : base(false) 
     { 
     } 

     public override void ProcessRequest(ref System.ServiceModel.Channels.RequestContext requestContext) 
     { 
      //How to access Request Header (Authorization header) from here? 
     } 
    } 
 

回答

6

你可以从System.ServiceModel.Channels.Message头,所以尽量

var message = requestContext.RequestMessage; 
var request = (HttpRequestMessageProperty)message.Properties[HttpRequestMessageProperty.Name]; 

string authorization = request.Headers[HttpRequestHeader.Authorization]; 
+0

我没有有非常相同的设置,所以需要这个让它工作:var requestContext = OperationContext.Current.RequestContext; –