如何将OwinStartup与Web API自托管一起使用

时间:2014-06-11 09:00:19

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

任何人都可以向我解释一下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());

        }

1 个答案:

答案 0 :(得分:0)

你可以说,你可以在控制台应用程序中托管你的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());

        }
}