如何从WCF请求拦截器中获取Authorization头信息

5

我需要对每个访问wcf服务的请求进行身份验证。


public class AuthenticationInterceptor : RequestInterceptor
{
    public AuthenticationInterceptor() : base(false)
    {
    }
public override void ProcessRequest(ref System.ServiceModel.Channels.RequestContext requestContext) { //如何在此处访问请求头(Authorization header)? } }
1个回答

9
您可以从System.ServiceModel.Channels.Message中获取标头,因此请尝试。
var message = requestContext.RequestMessage;
var request = (HttpRequestMessageProperty)message.Properties[HttpRequestMessageProperty.Name];

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

1
我没有完全相同的设置,所以需要这个来使它工作:var requestContext = OperationContext.Current.RequestContext; - Matt Kemp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接