public static void BuildPrivateKey() { var path = MyHostingEnvironment.MapPath(_rsaPath); string privateKey; RsaUtil.CreateKey(out privateKey); System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(path)); System.IO.File.WriteAllText(path, privateKey); RsaUtil.GetParams(privateKey, out string modulus, out string exponent); _exponent = exponent; _modulus = modulus; _privateKey = privateKey; //_timeout = DateTime.Now.AddSeconds(60); }
public override void WriteLog(string type, string content) { var Time = DateTime.Now; var filePath = new StringBuilder(File_Name); filePath.Replace("{time}", (Time.Ticks / 1000).ToString()); filePath.Replace("{yyyy}", Time.Year.ToString()); filePath.Replace("{yy}", (Time.Year % 100).ToString("D2")); filePath.Replace("{MM}", Time.Month.ToString("D2")); filePath.Replace("{dd}", Time.Day.ToString("D2")); filePath.Replace("{HH}", Time.Hour.ToString("D2")); filePath.Replace("{hh}", Time.Hour.ToString("D2")); filePath.Replace("{mm}", Time.Minute.ToString("D2")); filePath.Replace("{ss}", Time.Second.ToString("D2")); filePath.Replace("{type}", type); var file = MyHostingEnvironment.MapPath(filePath.ToString()); file = Path.GetFullPath(file); Directory.CreateDirectory(Path.GetDirectoryName(file)); fileLoggerQueue.EnqueueMessage(file, content); }
private static void GetPrivateKey() { if (_privateKey == null /*|| _timeout == null || _timeout.Value < DateTime.Now*/) { var path = MyHostingEnvironment.MapPath(_rsaPath); string privateKey; if (System.IO.File.Exists(path) == false) { RsaUtil.CreateKey(out privateKey); System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(path)); System.IO.File.WriteAllText(path, privateKey); } else { privateKey = System.IO.File.ReadAllText(path); } RsaUtil.GetParams(privateKey, out string modulus, out string exponent); _exponent = exponent; _modulus = modulus; _privateKey = privateKey; //_timeout = DateTime.Now.AddSeconds(60); } }
/// <summary> /// 获取文件绝对路径 /// </summary> /// <param name="path"></param> /// <returns></returns> protected string MapWebRootPath(string path) { return(MyHostingEnvironment.MapWebRootPath(path)); }
/// <inheritdoc /> public override void Load(IServiceCollection services) { var configurationBuilderEnvironment = new ConfigurationBuilder() .SetBasePath(_basePath) .AddEnvironmentVariables(); var configEnvironment = configurationBuilderEnvironment.Build(); var environmentName = configEnvironment["ASPNETCORE_ENVIRONMENT"]; IHostingEnvironment hostingEnvironment = new MyHostingEnvironment() { ApplicationName = "GenericSecurityTokenService", EnvironmentName = environmentName }; services.AddSingleton <IHostingEnvironment>(hostingEnvironment); var configurationBuilder = new ConfigurationBuilder() .SetBasePath(_basePath) .AddJsonFile("config.json") .AddJsonFile($"appsettings.IdentityResources.json") .AddJsonFile($"appsettings.ApiResources.json") .AddJsonFile($"appsettings.keyVault.json") .AddJsonFile($"appsettings.graphql.json") .AddJsonFile($"appsettings.Clients.json"); if (hostingEnvironment.IsDevelopment()) { configurationBuilder.AddUserSecrets <CoreAppModule>(); } configurationBuilder.AddEnvironmentVariables(); Configuration = configurationBuilder.Build(); services.AddSingleton <IConfiguration>(Configuration); bool useRedis = Convert.ToBoolean(Configuration["appOptions:redis:useRedis"]); bool useKeyVault = Convert.ToBoolean(Configuration["appOptions:keyVault:useKeyVault"]); services.AddSingleton <HttpClient>(); services.AddSingleton <IAuthorityFunction, CoreAuthorityFunction>(); services.AddSingleton <IIdentityFunction, CoreIdentityFunction>(); services.AddSingleton <IGraphQLFunction, CoreGraphQLFunction>(); services.AddSingleton(typeof(ILogger <>), typeof(Logger <>)); services.AddTransient <ILoggerFactory, LoggerFactory>(); var clients = Configuration.LoadClientsFromSettings(); var apiResources = Configuration.LoadApiResourcesFromSettings(); var identityResources = Configuration.LoadIdentityResourcesFromSettings(); var builder = services .AddIdentityServer(options => { options.InputLengthRestrictions.RefreshToken = 256; }) .AddInMemoryIdentityResources(identityResources) .AddInMemoryApiResources(apiResources) .AddInMemoryClientsExtra(clients) .AddIdentityServer4Extras() .AddProfileServiceManager() .AddArbitraryOwnerResourceExtensionGrant() .AddArbitraryIdentityExtensionGrant() .AddArbitraryNoSubjectExtensionGrant(); builder.AddInMemoryPersistedGrantStoreExtra(); if (useKeyVault) { builder.AddKeyVaultTokenCreateService(); services.AddKeyVaultTokenCreateServiceTypes(); services.AddKeyVaultTokenCreateServiceConfiguration(Configuration); } else { builder.AddDeveloperSigningCredential(); } // my replacement services. builder.AddRefreshTokenRevokationGeneratorWorkAround(); builder.AddNoSecretRefreshClientSecretValidator(); builder.AddInMemoryClientStoreExtra(); // redis extra needs IClientStoreExtra builder.SwapOutTokenResponseGenerator(); builder.SwapOutDefaultTokenService(); builder.SwapOutScopeValidator(); // My Types services.AddArbitraryNoSubjectExtentionGrantTypes(); services.AddArbitraryResourceOwnerExtentionGrantTypes(); services.AddArbitraryIdentityExtentionGrantTypes(); services.AddIdentityModelExtrasTypes(); services.AddIdentityServer4ExtraTypes(); services.AddRefreshTokenRevokationGeneratorWorkAroundTypes(); builder.AddProtectedRefreshTokenKeyObfuscator(); var endpoints = builder.Services .Where(service => service.ServiceType == typeof(Endpoint)) .Select(item => (Endpoint)item.ImplementationInstance) .ToList(); // endpoints.ForEach(item =>item.Path.Value.r = $"api/Authority/{item.Path.Value}"); endpoints.ForEach(item => item.Path = item.Path.Value.Replace("connect", "api/Authority/connect")); endpoints.ForEach(item => item.Path = item.Path.Value.Replace(".well-known/openid-configuration", "api/Authority/.well-known/openid-configuration"));// services.AddMemoryCache(); services.AddSingleton <IFunctionHttpContextAccessor, MyHttpContextAccessor>(); services.AddSingleton <IHttpContextAccessor>(s => s.GetService <IFunctionHttpContextAccessor>()); services.AddSingleton <IMyContextAccessor, MyContextAccessor>(); services.AddSingleton <ITokenValidator, TokenValidator>(); builder.Services.TryAddSingleton <IGraphQLFieldAuthority, InMemoryGraphQLFieldAuthority>(); services.AddGraphQLCoreTypes(); services.AddGraphQLCoreExtensionGrantsTypes(); services.RegisterP7CoreConfigurationServices(Configuration); services.RegisterGraphQLCoreConfigurationServices(Configuration); }
#pragma warning disable CA1810 // Initialize reference type static fields inline private static void Setup() #pragma warning restore CA1810 // Initialize reference type static fields inline { var functionPath = Path.Combine(new FileInfo(typeof(FhirFunctionsProxy).Assembly.Location).Directory.FullName, ".."); var configRoot = new ConfigurationBuilder() .SetBasePath(functionPath) .AddJsonFile("appsettings.json") .AddEnvironmentVariables() .Build(); IFileProvider fileProvider = new PhysicalFileProvider(functionPath); var hostingEnvironment = new MyHostingEnvironment() { ContentRootPath = functionPath, WebRootPath = functionPath, ContentRootFileProvider = fileProvider, WebRootFileProvider = fileProvider, }; hostingEnvironment.WebRootFileProvider = hostingEnvironment.ContentRootFileProvider; /* Add required services into DI container */ services = new ServiceCollection(); var listener = new DiagnosticListener("Microsoft.AspNetCore"); services.AddSingleton <DiagnosticSource>(listener); // services.AddSingleton<ObjectPoolProvider>(new DefaultObjectPoolProvider()); // services.AddSingleton<IHostEnvironment>(hostingEnvironment); services.AddSingleton <IWebHostEnvironment>(hostingEnvironment); services.AddSingleton <IConfiguration>(configRoot); services.AddSingleton(listener); // services.AddSingleton<IConfiguration>(configRoot); /* Instantiate standard ASP.NET Core Startup class */ startup = new Startup(configRoot); /* Add web app services into DI container */ startup.ConfigureServices(services); /* Initialize DI container */ serviceProvider = services.BuildServiceProvider(); /* Initialize Application builder */ appBuilder = new ApplicationBuilder(serviceProvider, new FeatureCollection()); // appBuilder.UsePathBase(new PathString("/api")); appBuilder.UseRouting(); appBuilder.UseFhirRequestContext(); /* Configure the HTTP request pipeline */ startup.Configure(appBuilder); /* Build request handling function */ requestHandler = appBuilder.Build(); foreach (var startable in serviceProvider.GetServices <IStartable>()) { startable.Start(); } foreach (var initializable in serviceProvider.GetServices <IRequireInitializationOnFirstRequest>()) { initializable.EnsureInitialized().GetAwaiter().GetResult(); } }
public async Task <IActionResult> GetOutTableInfo(SqlSearchDto dto) { var list = await _sqlOnlineApplication.GetTableShowColumns(AdminDto.Id, dto.SqlConnId, dto.Database); List <StructureModel> models = new List <StructureModel>(); if (list != null) { Dictionary <string, StructureModel> dict = new Dictionary <string, StructureModel>(); foreach (var item in list) { StructureModel model; var key = item.SchemaName + "." + item.Name; if (dict.TryGetValue(key, out model) == false) { model = new StructureModel(); if (string.IsNullOrEmpty(item.SchemaName) || item.SchemaName == "dbo" || item.SchemaName == "public") { model.Name = item.Name; } else { model.Name = key; } model.Comment = item.Comment; if (item.TableType.Trim() == "t" || item.TableType == "BASE TABLE" || item.TableType.Equals("table", StringComparison.OrdinalIgnoreCase) || item.TableType.Trim().Equals("u", StringComparison.OrdinalIgnoreCase) ) { model.Type = "t"; } else { model.Type = "v"; } dict[key] = model; models.Add(model); } model.Items.Add(new StructureItemModel(item)); } } var filePath = MyHostingEnvironment.MapWebRootPath("/_/outTableInfo/index.html"); var html = System.IO.File.ReadAllText(filePath); StringBuilder stringBuilder = new StringBuilder(html); stringBuilder.Replace("[[DatabaseName]]", dto.Database); stringBuilder.Replace("[[data]]", Newtonsoft.Json.JsonConvert.SerializeObject(models)); using (var archive = ZipArchive.Create()) { var folderPath = MyHostingEnvironment.MapWebRootPath("/_/outTableInfo/"); archive.AddEntry("css/dbs.css", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, "css/dbs.css")).OpenRead(), true); archive.AddEntry("css/global.css", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, "css/global.css")).OpenRead(), true); archive.AddEntry("img/dbs/bg.gif", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, "img/dbs/bg.gif")).OpenRead(), true); archive.AddEntry("img/dbs/icon-proc.gif", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, "img/dbs/icon-proc.gif")).OpenRead(), true); archive.AddEntry("img/dbs/icon-table.gif", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, "img/dbs/icon-table.gif")).OpenRead(), true); archive.AddEntry("img/dbs/icon-view.gif", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, "img/dbs/icon-view.gif")).OpenRead(), true); archive.AddEntry(@"js\layer\skin\default\icon.png", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, @"js\layer\skin\default\icon.png")).OpenRead(), true); archive.AddEntry(@"js\layer\skin\default\icon-ext.png", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, @"js\layer\skin\default\icon-ext.png")).OpenRead(), true); archive.AddEntry(@"js\layer\skin\default\layer.css", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, @"js\layer\skin\default\layer.css")).OpenRead(), true); archive.AddEntry(@"js\layer\skin\default\loading-0.gif", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, @"js\layer\skin\default\loading-0.gif")).OpenRead(), true); archive.AddEntry(@"js\layer\skin\default\loading-1.gif", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, @"js\layer\skin\default\loading-1.gif")).OpenRead(), true); archive.AddEntry(@"js\layer\skin\default\loading-2.gif", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, @"js\layer\skin\default\loading-2.gif")).OpenRead(), true); archive.AddEntry(@"js\layer\layer.js", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, @"js\layer\layer.js")).OpenRead(), true); archive.AddEntry(@"js\clipboard.js", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, @"js\clipboard.js")).OpenRead(), true); archive.AddEntry(@"js\doT.min.js", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, @"js\doT.min.js")).OpenRead(), true); archive.AddEntry(@"js\jquery.min.js", new System.IO.FileInfo(System.IO.Path.Combine(folderPath, @"js\jquery.min.js")).OpenRead(), true); archive.AddEntry(@"index.html", new System.IO.MemoryStream(Encoding.UTF8.GetBytes(stringBuilder.ToString())), true); using (var ms = new System.IO.MemoryStream()) { archive.SaveTo(ms); return(File(ms.ToArray(), "application/zip", dto.Database + "_tableInfo.zip")); } } }