Rest ServiceAuthorizationManager中的授权标头在第二次调用中为空

Rest ServiceAuthorizationManager中的授权标头在第二次调用中为空,rest,wcf,basic-authentication,Rest,Wcf,Basic Authentication,我有一个WCF REST服务,它接受xml数据作为输入,并返回一些数据。要实现基本身份验证,我使用ServiceAuthorizationManager。CheckAccessCore方法自动调用两次。在第一次呼叫中,CheckAccessCore中的授权标头正确,但在第二次呼叫中,授权标头为空 ServiceAuthorizationManager检查访问核心方法 protected override bool CheckAccessCore(OperationContext operatio

我有一个WCF REST服务,它接受xml数据作为输入,并返回一些数据。要实现基本身份验证,我使用ServiceAuthorizationManager。CheckAccessCore方法自动调用两次。在第一次呼叫中,CheckAccessCore中的授权标头正确,但在第二次呼叫中,授权标头为空

ServiceAuthorizationManager检查访问核心方法

protected override bool CheckAccessCore(OperationContext operationContext)
    {
        var authHeader = WebOperationContext.Current.IncomingRequest.Headers["Authorization"];

        if (!string.IsNullOrEmpty(authHeader))
        {
            var credentials = System.Text.ASCIIEncoding.ASCII.GetString(Convert.FromBase64String(authHeader.Substring(6))).Split(':');
            var user = new
            {
                Name = credentials[0],
                Password = credentials[1]
            };

            if (user.Name == "test" && user.Password == "pass")
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            WebOperationContext.Current.OutgoingResponse.Headers.Add("WWW-Authenticate: Basic realm =\"CreditData\"");
            throw new WebFaultException(HttpStatusCode.Unauthorized);
        }
    }
WCF Web.config


问题在于webservice方法的模板。它是空的,当我调用服务时,只使用斜杠重定向到同一个url。e、 g.当我向“”发送请求时,它被重定向到“”。这产生了第二个请求,而第二个请求的授权头正好为空。当我添加UriTemplate时,问题解决了。

问题是webservice方法的UriTemplate。它是空的,当我调用服务时,只使用斜杠重定向到同一个url。e、 g.当我向“”发送请求时,它被重定向到“”。这产生了第二个请求,而第二个请求的授权头正好为空。当我添加模板时,问题解决了