C# 401(未经授权)在拨打服务电话时

C# 401(未经授权)在拨打服务电话时,c#,asp.net-web-api,C#,Asp.net Web Api,进行web api控制器调用时获得401(授权) public bool CheckCarrierSCAC(int carrierID) { bool carrierScacSatus = false; carrierSCAC = new BackOfficeViewController().GetSCACCodeBYCarrierID(carrierID); logger.LogMessage(messag

进行web api控制器调用时获得401(授权)

public bool CheckCarrierSCAC(int carrierID)
        {
            bool carrierScacSatus = false;
            carrierSCAC = new BackOfficeViewController().GetSCACCodeBYCarrierID(carrierID);
            logger.LogMessage(message: string.Format("Credentials {0}{1}", ConfigurationManager.AppSettings["HermesUserName"], ConfigurationManager.AppSettings["HermesPassword"]), logDate: true);
            Http.Preauthenticate = true;
            string serviceUrl = string.Format("{0}/CarrierSCAC?carrier={1}", ConfigurationManager.AppSettings["GatewayInterface"], carrierSCAC);
            logger.LogMessage(message: string.Format("Check Carrier SCAC Service URL {0} ", serviceUrl), logDate: true);
            try
            {
                carrierScacSatus = Http.Get<bool>(uri: serviceUrl, cookieContainer: null, contentType: "application/json");
            }
            catch (Exception exception)
            {
                logger.LogException(exception, message: "error while check Carrier Scac =" + exception.Message);
            }
            return carrierScacSatus;
        }
public bool CheckCarrierSCAC(int carrierID)
{
bool carrierScacSatus=假;
carrierSCAC=新BackOfficeViewController().GetSCACCodeBYCarrierID(carrierID);
LogMessage(消息:string.Format(“凭证{0}{1}”、ConfigurationManager.AppSettings[“HermesUserName”]、ConfigurationManager.AppSettings[“HermesPassword”]、logDate:true);
Http.Preauthenticate=true;
string serviceUrl=string.Format(“{0}/CarrierSCAC?carrier={1}”,ConfigurationManager.AppSettings[“网关接口”],CarrierSCAC);
LogMessage(消息:string.Format(“检查运营商SCAC服务URL{0}”,serviceUrl),logDate:true);
尝试
{
carrierScacSatus=Http.Get(uri:serviceUrl,cookieContainer:null,contentType:“application/json”);
}
捕获(异常)
{
logger.LogException(异常,消息:“检查载波Scac时出错=”+异常.message);
}
返回承运人;
}

我已经使用了预验证,但仍然会收到相同的错误设置
Http.Preauthenticate=true
只是告诉web请求将
授权
头发送到该Uri,假设它是传递到的。在本例中,您似乎没有实际向web请求提供任何凭据。引用凭据的唯一情况是在记录器消息中


Http.Get
方法应允许您提供原始头值(在这种情况下,您需要添加自己的
授权
头)或凭据,以便它为您创建头。(这似乎是一个包装C#
WebRequest的库
或类似的连接库,因此您需要查看它的文档以了解具体细节)。

设置
Http.Preauthenticate=true
只是告诉web请求将
授权
头发送到该Uri,假设这是一个传递到。在本例中,您似乎没有实际向web请求提供任何凭据。引用凭据的唯一情况是在记录器消息中


Http.Get
方法应允许您提供原始头值(在这种情况下,您需要添加自己的
授权
头)或凭据,以便它为您创建头。(这似乎是一个包装C#
WebRequest的库
或类似的连接库,因此您需要查看它的文档以了解具体细节)。

检查关于CORScheck关于CORS@SandeepPandey这解决了你的问题了吗?还是它仍然给你401秒?太好了!如果回答了您的问题,请记住将答案标记为已接受。谢谢。@SandeepPandey解决了你的问题,还是它仍然给你401秒?太好了!如果回答了您的问题,请记住将答案标记为已接受。谢谢