首页 > 解决方案 > 如何从 OWIN 启动类中获取 localhost 名称

问题描述

我试图通过在 ASP.NET Web 表单中使用以下代码从 OWIN Startup 类获取主机名。我得到http://127.0.0.1主机名而不是http://localhsot:portnumber。此外,我无法获得真实的主机名,即 www.testsite.com。是否有任何选项可用于从 OWIN Startup 类获取实际主机名?

[assembly: OwinStartup(typeof(Startup))]        
public class Startup
{
  public void Configuration(IAppBuilder app)
  {
     app.UseCookieAuthentication(new CookieAuthenticationOptions
     {
       AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
       ExpireTimeSpan = TimeSpan.FromMinutes(10),
       SlidingExpiration = true
     });
     app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
     var host = HttpContext.Current.Request.Url.Host.ToString().ToLower(); <-- I am getting http://127.0.0.1 instead of http://localhsot:portnumber.         
     var queryString = "";
     if (host.Contains("technicolor"))
     {
       queryString = "1";
     }
     else if (host.Contains("3") || HttpContext.Current.Request.IsLocal)
     {
       queryString = "2";
     }
     else {
       queryString = "3"
     }

     var options = new PingAuthenticationOptions(
                       pingAuthenticationUrl: ConfigurationManager.AppSettings["Ping::LoginUrl"] + ACSIdx,
                       pingLogoutUrl: ConfigurationManager.AppSettings["Ping::LogoutUrl"],
                       certificateFile: certificate,
                       pingResponseDestination: ConfigurationManager.AppSettings["Ping::DestinationUrl"],
                       externalLoginCallback: ConfigurationManager.AppSettings["Ping::ExternalLoginCallback"],
                       samlProcessor: new SamlProcessor());
        app.UsePingAuthentication(options);
  }
}

标签: c#asp.netowinowin-middleware

解决方案


推荐阅读