【问题标题】:Authorization Header from my console not received in Restful WCF webservice在 Restful WCF Web 服务中未收到来自我的控制台的授权标头
【发布时间】:2018-12-06 03:52:20
【问题描述】:

我实际上是 C# 的新手,我目前正在构建一个简单的基本 Restful WCF Web 服务,它使用自定义标头授权来处理请求

 public void validateHeader(string requestBody)
    {
        try
        {
            IncomingWebRequestContext WebReq = WebOperationContext.Current.IncomingRequest;
            string requestedURL = WebReq.UriTemplateMatch.RequestUri.OriginalString;
            string clientHeader = WebReq.Headers["Authorization"];
            if (clientHeader.Substring(0, 3) != "amx")
            {
                BuildUnauthorizedError("Unknown header");
            }

然后我使用 Postman 对其进行了调试,并添加了 Authorization Header 值,它可以正常工作

但问题是,当我尝试使用此控制台应用程序调试 WCF 时:

try
        {

            string requestURL = "http://localhost:62146/ORIListenerService.svc/GetDataStatusPembayarans";
            var request = (HttpWebRequest)WebRequest.Create(requestURL);
            request.Method = "GET";
            request.ContentType = "application/json";
            request.PreAuthenticate = true;
            request.Headers.Add("Authorization","amx 12345");

            var response = (HttpWebResponse)request.GetResponse();

在 WCF 上甚至没有收到 Authorization 标头

我还尝试用随机文本填充标题值,除了授权之外,它都在 WCF 上收到。 我错过了什么还是我做错了?

提前致谢

【问题讨论】:

    标签: c# rest wcf httpwebrequest weboperationcontext


    【解决方案1】:

    尝试在请求中添加“Accept”标头参数,谢谢。

    【讨论】:

    • 我做到了,但仍然没有运气
    【解决方案2】:

    我找到了解决方案,结果发现我错过了 requestURL 中尾随的 /。

    我在[OperationContract]中的UriTemplate是这样的

    UriTemplate = "/GetDataStatusPembayarans/"
    

    但我调用 URL http://localhost:62146/GetDataStatusPembayarans

    【讨论】:

      猜你喜欢
      • 2021-07-07
      • 2020-12-06
      • 2013-07-19
      • 2013-03-17
      • 2014-05-22
      • 1970-01-01
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多