在OwinSelfHost项目中,获取客户端的IP地址可以通过以下方法获得:
- base.Request.GetOwinContext().Request.RemoteIpAddress
创建一个OwinSelfHost项目的大概过程:
- 创建名称为OwinSelfHostSample的Windows窗体应用(.NET Framework)项目;
- 在NuGet包管理器中添加中添加Microsoft.AspNet.WebApi.OwinSelfHost;
- 添加Startup类;
- 添加控制器类MainController。
各个类的代码如下:
- Program
1 using System; 2 using System.Windows.Forms; 3 4 namespace OwinSelfHostSample 5 { 6 internal static class Program 7 { 8 [STAThread] 9 static void Main() 10 { 11 Application.EnableVisualStyles(); 12 Application.SetCompatibleTextRenderingDefault(false); 13 Application.Run(new MainForm()); 14 } 15 } 16 }
- Startup
1 using Owin; 2 using System.Net.Http.Headers; 3 using System.Web.Http; 4 5 namespace OwinSelfHostSample 6 { 7 internal class Startup 8 { 9 public void Configuration(IAppBuilder appBuilder) 10 { 11 var config = new HttpConfiguration(); 12 config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{action}/{id}", new { id = RouteParameter.Optional }); 13 14 appBuilder.UseWebApi(config); 15 } 16 } 17 }
- MainController
1 using System.Net.Http; 2 using System.Web.Http; 3 4 namespace OwinSelfHostSample 5 { 6 public class MainController : ApiController 7 { 8 [HttpGet, HttpPost] 9 public IHttpActionResult GetClientIp() 10 { 11 var result = base.Request.GetOwinContext().Request.RemoteIpAddress; 12 return Ok(result); 13 } 14 } 15 }
- MainForm
1 using Microsoft.Owin.Hosting; 2 using System; 3 using System.Windows.Forms; 4 5 namespace OwinSelfHostSample 6 { 7 internal partial class MainForm : Form 8 { 9 public MainForm() 10 { 11 this.InitializeComponent(); 12 } 13 14 private void button1_Click(object sender, EventArgs e) 15 { 16 WebApp.Start<Startup>("http://127.0.0.1:8090"); 17 this.button1.Enabled = false; 18 } 19 } 20 }
- packages.config
1 <?xml version="1.0" encoding="utf-8"?> 2 <packages> 3 <package id="Microsoft.AspNet.WebApi.Client" version="6.0.0" targetFramework="net48" /> 4 <package id="Microsoft.AspNet.WebApi.Client.zh-Hans" version="6.0.0" targetFramework="net48" /> 5 <package id="Microsoft.AspNet.WebApi.Core" version="5.3.0" targetFramework="net48" /> 6 <package id="Microsoft.AspNet.WebApi.Core.zh-Hans" version="5.3.0" targetFramework="net48" /> 7 <package id="Microsoft.AspNet.WebApi.Owin" version="5.3.0" targetFramework="net48" /> 8 <package id="Microsoft.AspNet.WebApi.Owin.zh-Hans" version="5.3.0" targetFramework="net48" /> 9 <package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.3.0" targetFramework="net48" /> 10 <package id="Microsoft.Owin" version="4.2.2" targetFramework="net48" /> 11 <package id="Microsoft.Owin.Host.HttpListener" version="4.2.2" targetFramework="net48" /> 12 <package id="Microsoft.Owin.Hosting" version="4.2.2" targetFramework="net48" /> 13 <package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" /> 14 <package id="Newtonsoft.Json.Bson" version="1.0.2" targetFramework="net48" /> 15 <package id="Owin" version="1.0" targetFramework="net48" /> 16 <package id="System.Buffers" version="4.5.1" targetFramework="net48" /> 17 <package id="System.Memory" version="4.5.5" targetFramework="net48" /> 18 <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" /> 19 <package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net48" /> 20 <package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" /> 21 </packages>标签:11,10,OwinSelfHost,System,OwinSelfHostSample,IP地址,using,客户端 From: https://www.cnblogs.com/yiluxiangdong/p/18284802