Files
cms_thermo_active/Step/App_Start/Startup.cs
T
CMS4390\marantalu 46c34f46e8 * Fixed webapi auth
* WIP signalauth
* Fist commit server config
2017-11-28 17:19:01 +01:00

73 lines
2.4 KiB
C#

using System;
using Microsoft.Owin;
using Owin;
using System.Web.Http;
using Microsoft.Owin.StaticFiles;
using System.IO;
using System.Reflection;
using Microsoft.Owin.FileSystems;
using System.Configuration;
using Microsoft.Owin.Security.OAuth;
using Step.Provider;
using Step.Config;
[assembly: OwinStartup(typeof(Step.App_Start.Startup))]
namespace Step.App_Start
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
StartupConfigController.ReadStartUpConfig();
// Configure HTTP
HttpConfiguration config = new HttpConfiguration();
// Register Web API config
WebApiConfig.Register(config);
// Register Swagger config
SwaggerConfig.Register(config);
// Configure authentication
ConfigureOAuth(app);
app.UseWebApi(config);
// Register SignalR
app.MapSignalR();
var directoryBrowsing = ConfigurationManager.AppSettings["enableDirectoryBrowsing"] == "true";
string rootDir = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "..", "wwwroot");
var options = new FileServerOptions()
{
EnableDefaultFiles = !directoryBrowsing,
EnableDirectoryBrowsing = directoryBrowsing,
RequestPath = PathString.Empty,
FileSystem = new PhysicalFileSystem(rootDir)
};
app.UseFileServer(options);
}
private void ConfigureOAuth(IAppBuilder app)
{
OAuthAuthorizationServerOptions OAuthOptions = new OAuthAuthorizationServerOptions
{
// Login and Token generation end point
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(),
// Bearer token expiration time
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
//TODO: In modalità di produzione impostare AllowInsecureHttp = false
AllowInsecureHttp = true
};
// Set authorization options
app.UseOAuthAuthorizationServer(OAuthOptions);
// Set bearer oAuth as authentication method
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
}
}
}