gpt4 book ai didi

asp.net - HttpRequestMessage.IsLocal() 在一个站点上为 false 在同一台服务器上的另一个站点上为 true

转载 作者:行者123 更新时间:2023-12-04 07:22:28 25 4
gpt4 key购买 nike

我在 Windows 服务器上运行 asp.net web api 应用程序。我有 2 个具有不同 IP 地址的站点。当应用程序部署在其中一个站点上时,IsLocal 为真,当部署在另一个站点上时,它为假。

查看源码,归结为:

    [DllImport("aspnet_state.exe", CharSet=CharSet.Ansi)]
internal static extern void STWNDGetLocalAddress(IntPtr tracker, StringBuilder buf);

这是返回本地地址的方法,为什么第二个ip无效?网络配置如下所示(.79 ip 地址是 IsLocal 返回 false 的地址)

enter image description here

如何让 IsLocal 考虑第二个 ip?

最佳答案

IsLocal 在以下三种情况中的任何一种情况下都返回 true:

  • 请求来自127.0.0.1
  • 请求来自本地
  • 请求来自与服务器IP相同的IP

您的第一步应该是注销传入请求的 IP,这样您就可以确定 Web API 认为的来源。

关于asp.net - HttpRequestMessage.IsLocal() 在一个站点上为 false 在同一台服务器上的另一个站点上为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21461677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com