2011-09-25 121 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; –