【问题标题】:Azure REST endpoint reports internal addressAzure REST 终结点报告内部地址
【发布时间】:2014-09-27 10:36:32
【问题描述】:

我制作了一个自定义 REST API http://127.0.0.1:81/Interfaces/RestApiExt.svc/Custom1/username/Admin。不幸的是,System.ServiceModel.Web 操作 WebOperationContext.Current.IncomingRequest 报告了内部端点地址和套接字,在我的情况下为 http://a2123-9023:82/Interfaces/RestApiExt.svc/Custom1/username/Admin,这很糟糕,因为我在主机端进行了一些 OAuth 身份验证,因此客户端和主机 URL 必须匹配才能获得匹配的 OAuth签名。如何获取客户端发送的 url 而不是主机上的内部端点地址?

【问题讨论】:

    标签: wcf rest azure azure-web-roles


    【解决方案1】:

    我通过使用包含“外部”地址而不是处理内部端点地址的主机 HTTP 标头找到了解决方法。仅在我的开发人员环境中对其进行了测试,但我认为它也可以在 Azure 云中运行:

        public bool Authenticate(string username, IncomingWebRequestContext context)
        {
           var endPointUri = context.UriTemplateMatch.RequestUri;
           var originalUrl = endPointUri.Scheme + "://" + context.Headers["Host"] 
              + endPointUri.PathAndQuery;
           // .. OAuth specific code follows
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 2021-01-20
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多