【问题标题】:How to use OwinStartup with WebAPI self host如何将 OwinStartup 与 WebAPI 自托管一起使用
【发布时间】:2014-06-11 09:00:19
【问题描述】:

谁能向我解释一下 OwinStartup 以及如何在自托管 Web api 中使用它?

这是我当前在 Windows 服务中的代码:

public void Configuration(IAppBuilder app)
        {
            ConfigureOAuth(app);
            var config =
               new HttpSelfHostConfiguration("http://localhost:60065");
            WebApiConfig.Register(config);
            app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
            app.UseWebApi(config);
        }

        public void ConfigureOAuth(IAppBuilder app)
        {
            OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions() {

                AllowInsecureHttp = true,
                TokenEndpointPath = new PathString("/token"),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
                Provider = new SimpleAuthorizationServerProvider()
            };

            // Token Generation
            app.UseOAuthAuthorizationServer(OAuthServerOptions);

            app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());

        }

【问题讨论】:

    标签: asp.net asp.net-web-api owin


    【解决方案1】:

    假设您可以在控制台应用程序中托管您的 owin。
    在这种情况下,您应该这样做:

    class Program
    {
        static void Main(string[] args)
        {
            string uri = "http://localhost:8080/";
    
            using (WebApp.Start(uri, Startup.Configuration))
            {
                Console.WriteLine("Started listening on " + uri);
                Console.ReadLine();
                Console.WriteLine("Shutting down...");
            }
        }
    }
    

    这就是启动:

    public class Startup
        {
        public static void Configuration(IAppBuilder app)
            {
                ConfigureOAuth(app);
    
                WebApiConfig.Register(config);
    
            app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
                app.UseWebApi(config);
            }
    
            public void ConfigureOAuth(IAppBuilder app)
            {
                OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions() 
            {
            AllowInsecureHttp = true,
                    TokenEndpointPath = new PathString("/token"),
                    AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
                    Provider = new SimpleAuthorizationServerProvider()
            };
    
                // Token Generation
                app.UseOAuthAuthorizationServer(OAuthServerOptions);
    
                app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
    
            }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-05-29
      • 2013-11-17
      • 2014-04-06
      • 2021-09-19
      • 2019-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-07
      相关资源
      最近更新 更多