Rest ServiceAuthorizationManager中的授权标头在第二次调用中为空
我有一个WCF REST服务,它接受xml数据作为输入,并返回一些数据。要实现基本身份验证,我使用ServiceAuthorizationManager。CheckAccessCore方法自动调用两次。在第一次呼叫中,CheckAccessCore中的授权标头正确,但在第二次呼叫中,授权标头为空 ServiceAuthorizationManager检查访问核心方法Rest ServiceAuthorizationManager中的授权标头在第二次调用中为空,rest,wcf,basic-authentication,Rest,Wcf,Basic Authentication,我有一个WCF REST服务,它接受xml数据作为输入,并返回一些数据。要实现基本身份验证,我使用ServiceAuthorizationManager。CheckAccessCore方法自动调用两次。在第一次呼叫中,CheckAccessCore中的授权标头正确,但在第二次呼叫中,授权标头为空 ServiceAuthorizationManager检查访问核心方法 protected override bool CheckAccessCore(OperationContext operatio
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.当我向“”发送请求时,它被重定向到“”。这产生了第二个请求,而第二个请求的授权头正好为空。当我添加模板时,问题解决了