none
怎么获取请求的客户端端口号 RRS feed

答案

  • 查看HttpContext源码,发现HttpWorkerRequest有方法GetRemotePort

    搜索本版发现转换代码

    IServiceProvider provider = (IServiceProvider)HttpContext.Current;

    HttpWorkerRequest request = (HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest)); //然后就可以 Response.Write(request.GetRemotePort());

    用vs自带的服务器得到的是 SimpleWorkerRequest,端口永远返回0

    在IIS7下得到IIS7WorkerRequest是正确的,通过UnsafeIISMethods中的

    [DllImport("webengine.dll", CharSet=CharSet.Unicode)]
    internal static extern int MgdGetRemotePort(IntPtr context);
    
    • 已标记为答案 Mr.Xiao 2012年5月17日 16:08
    2012年5月17日 16:06

全部回复