Startup.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using System;
  2. using System.Collections.Concurrent;
  3. using System.Configuration;
  4. using System.Security.Claims;
  5. using System.Threading.Tasks;
  6. using Abp.Dependency;
  7. using Abp.Extensions;
  8. using Abp.Owin;
  9. using IwbZero.Authorization;
  10. using Microsoft.Owin;
  11. using Microsoft.Owin.Security;
  12. using Microsoft.Owin.Security.Cookies;
  13. using Microsoft.Owin.Security.Infrastructure;
  14. using Microsoft.Owin.Security.OAuth;
  15. using Owin;
  16. using ShwasherSys;
  17. using ShwasherSys.Api.Controllers;
  18. using ShwasherSys.Authorization.Users;
  19. using ShwasherSys.Authorization;
  20. using IwbZero.Authorization.Permissions;
  21. using ShwasherSys.BaseSysInfo;
  22. using IwbZero.Session;
  23. using System.Globalization;
  24. using System.Net;
  25. using Abp.Domain.Repositories;
  26. [assembly: OwinStartup(typeof(Startup))]
  27. namespace ShwasherSys
  28. {
  29. public class Startup
  30. {
  31. public void Configuration(IAppBuilder app)
  32. {
  33. app.UseAbp();
  34. app.UseOAuthBearerAuthentication(AccountController.OAuthBearerOptions);
  35. var logInManager = IocManager.Instance.Resolve<LogInManager>();
  36. var wxUserRepository = IocManager.Instance.Resolve<IRepository<WxUser>>();
  37. app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions()
  38. {
  39. AllowInsecureHttp = true,
  40. AuthenticationMode = AuthenticationMode.Active,
  41. TokenEndpointPath = new PathString("/token"), //获取 access_token 授权服务请求地址
  42. AuthorizeEndpointPath = new PathString("/authorize"), //获取 authorization_code 授权服务请求地址
  43. AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(30), //access_token 过期时间
  44. Provider = new OpenAuthorizationServerProvider(logInManager), //access_token 相关授权服务
  45. RefreshTokenProvider = new OpenRefreshTokenProvider() //refresh_token 授权服务
  46. });
  47. app.UseCookieAuthentication(new CookieAuthenticationOptions
  48. {
  49. AuthenticationType = ShwasherConsts.AuthenticationTypes,
  50. LoginPath = new PathString("/Account/Login"),
  51. // by setting following values, the auth cookie will expire after the configured amount of time (default 14 days) when user set the (IsPermanent == true) on the login
  52. ExpireTimeSpan = new TimeSpan(int.Parse(ConfigurationManager.AppSettings["AuthSession.ExpireTimeInDays.WhenPersistent"] ?? "14"), 0, 0, 0),
  53. SlidingExpiration = bool.Parse(ConfigurationManager.AppSettings["AuthSession.SlidingExpirationEnabled"] ?? bool.FalseString)
  54. });
  55. app.MapSignalR();
  56. //app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
  57. //ENABLE TO USE HANGFIRE dashboard (Requires enabling Hangfire in IwbYueWebModule)
  58. //app.UseHangfireDashboard("/hangfire", new DashboardOptions
  59. //{
  60. // Authorization = new[] { new AbpHangfireAuthorizationFilter() } //You can remove this line to disable authorization
  61. //});
  62. }
  63. }
  64. }