我想把它放在我的标记中:
<script type="text/javascript" src="<%$ AppSettings:proxyScriptUrl %>"></script>
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,这是不被接受的.我在这做错了什么?
要求是我不使用辅助方法,而是在标记中使用expressionbuilder.
我正在开发一个应用程序,将其设置保存在安装文件夹中.如果我在驱动器C:上的Program Files中安装应用程序并尝试编写设置文件,我会得到一个例外,就是这样.
我知道用户帐户控制(UAC)migth是不允许我的应用程序修改文件内容的那个.
我需要以下问题的帮助:
一个更通用的问题是:
如何创建一个C#程序,在Windows Vista下安装到C:\ Program Files\MyProgram后可以在安装目录中操作(创建/编辑/删除).ini文件?对于所有用户,此文件应该相同.
我们正在创建几个(19)网站,以便在Sharepoint 2007中托管,并希望使用Google Analytics.第一点很容易,只需将Google Analytics javascript放在Sharepoint母版页中,所有内容都按预期工作.
但是,我们希望19个站点中的每个站点都生成单独的统计信息,这是通过为每个站点设置不同的ID来完成的.我的第一个想法是将id存储在每个站点的web.config中,并更改母版页以便为javascript读取此内容:
<%= ConfigurationManager.AppSettings["google.analytics.key"]%>
Run Code Online (Sandbox Code Playgroud)
不幸的是,Sharepoint不喜欢这样说并且说:此文件中不允许使用代码块.
我的问题是:
有没有办法在Sharepoint母版页中从web.config读取appSettings?要么
是否有更好的Sharepoint方式将特定于站点的信息导入母版页?要么
我是否坚持为每个网站使用单独的母版页?
我有一个WebAPI,我将在Azure上发布它.我在我的应用程序上使用.Net Core 2.0.
我有一个名为appsettings.json的文件,它具有以下配置:
{
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
},
"AppConfiguration": {
"MyVariable": false,
}
...
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,在localhost中运行,我可以从"MyVariable"获取值.
当我将它发布到Azure时,我也可以从"MyVariable"中获取值.
但是,当我转到我的Azure应用程序的应用程序设置时,我将"MyVariable"设置为"true",但我的应用程序不断获得值"false".
总而言之,我无法从appsettings.json获取Azure的价值.
我尝试在Azure上使用以下键值:
AppConfiguration:MyVariable - true
MyVariable - true
他们都没有工作.
任何人都可以帮助我如何从Azure应用程序设置中获取价值?
编辑1 我的程序类:
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(
(WebHostBuilderContext context, IConfigurationBuilder builder) =>
{
builder.Sources.Clear();
builder
.AddEnvironmentVariables()
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.UseApplicationInsights()
.UseStartup<Startup>()
.Build();
Run Code Online (Sandbox Code Playgroud) 我有一个自定义的 Enricher:CorrelationIdsEnricher为了编写CorrelationId和RequestId记录,它的构造函数有一个参数:ICorrelationContextProvider用于传递相关上下文提供程序。
在我的项目中,我通过阅读appsettings.json配置文件来配置 serilog 。这是配置文件:
{
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Common.Logging", "Common.Correlation" ],
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "Console",
"Args": {
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] [{SourceContext}] [{EventId}] [{RequestId} {CorrelationId}] {Message}{NewLine}{Exception}",
"theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, Serilog.Sinks.Console"
}
}
],
"Enrich": [
"FromLogContext",
{
"Name": "WithCorrelationIds",
"Args": {
"provider": "Correlation.ServerContextProvider::Default, Common.Correlation"
}
}
],
}
}
Run Code Online (Sandbox Code Playgroud)
但是它不能CorrelationIdsEnricher正确设置。
有谁知道为什么?
我想保持类为静态。是否有任何解决方法可以在IOptions<EncryptionSettings>不修改访问修饰符的情况下注入?
public static class Encrypter
{
private static readonly Encoding encoding = Encoding.UTF8;
private static readonly EncryptionSettings _encryptionSettings;
public static Encrypter(IOptions<EncryptionSettings> encryptionSettings)
{
_encryptionSettings = encryptionSettings.Value;
}
public static string Encrypt(string plainText)
{
(...)
}
public static string Decrypt(string plainText)
{
(...)
}
static byte[] HmacSHA256(String data)
{
(...)
}
}
Run Code Online (Sandbox Code Playgroud)
'Encrypter.Encrypter(IOptions)':静态构造函数上不允许使用访问修饰符
'Encrypter.Encrypter(IOptions)':静态构造函数必须是无参数的
我的数组中有 appsettings.json
"steps": [
{
"name": "IMPORT",
"enabled": true
},
{
"name": "IMPORT_XML",
"enabled": true
},
{
"name": "COMPARE",
"enabled": true
},
{
"test_name": "COMPARE_TABLE",
"enabled": true
}]
Run Code Online (Sandbox Code Playgroud)
在我的课堂上,我试图用 IConfigurationRoot _configurationRoot
我试过了:
var procSteps = _configurationRoot.GetSection("steps");
foreach (IConfigurationSection section in procSteps.GetChildren())
{
var key = section.GetValue<string>("test");
var value = section.GetValue<string>("enabled");
}
Run Code Online (Sandbox Code Playgroud)
和:
var procSteps = _configurationRoot.GetSection("ExecutionSteps")
.GetChildren()
.Select(x => x.Value)
.ToArray();
Run Code Online (Sandbox Code Playgroud)
但他们都没有找回我的价值观。有谁知道这是什么情况以及访问此类数组值的正确方法是什么?
我有以下 appSettings.json 文件:
"SundrySettings": {
"CookieName": "Cookie",
"AccessGroup": "Software Development",
"Terminals" : {
"Raucherplatz" : "tablet1.local",
"Service" : "tablet2.local",
"Technik" : "tablet3.local",
"Technik" : "tablet4.local",
"Container" : "tablet5.local"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想加载到以下结构中:
public class Terminal
{
public string Name;
public string Description;
}
public class SundryOptions
{
public string CookieName { get; set; } = "dummy";
public string HRAccessGroup { get; set; } = "dummy";
public List<Terminal> Terminals;
}
Run Code Online (Sandbox Code Playgroud)
我会尝试使用以下命令加载:
ServiceProvider sp = services.BuildServiceProvider();
SundryOptions sundryOptions = sp.GetService<IOptions<SundryOptions>>().Value;
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是使用属性初始化器永远不会正确设置终端列表。我确实需要一个列表(而不是字典),因为在我的示例中,实体可能是双重的,即 Technik。 …
因此,我在尝试让 Visual Studio 将用户机密添加到作为数组的属性时遇到了问题。我有一种感觉这种事情无法完成,但我真的需要一种方法来遍历它们中的每一个我正在做的事情,并且出于显而易见的原因,我不允许将 clientSecrets 存储在标准 appsettings 文件中.
有没有办法做到这一点,如果没有,我是否可以更改此对象以使其在 c# 中可迭代,这也允许我将密码存储在用户机密中?
下面的对象显示了我试图将值存储到其中的 appsettings 的当前形状。
{
"TestClients": [
{
"ClientSecret": ""
},
{
"ClientSecret": ""
},
{
"ClientSecret": ""
},
{
"ClientSecret": ""
},
{
"ClientSecret": ""
},
{
"ClientSecret": ""
},
{
"ClientSecret": ""
},
{
"ClientSecret": ""
}
]
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试将它变成一个 onject 并通过键进行迭代,但是当对象的形状像这样时,我正在使用的控制台应用程序似乎没有找到 TestClients 部分
{
"TestClients": {
"ClientName": {
"ClientSecret": ""
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,因为它现在是一个拦截器,提前致谢,克里斯。
我不能使用 EF,因为它不适用于 Oracle(或者我发现的教程已经过时且无法使用)。
我打算使用 ODP.Net 或 devart 的驱动程序。
使用 appsettings.json 中的连接字符串的最佳方法是什么?
我看过很多教程不完整或不适用于 Asp.Net Core 3.1
我的控制器
public class ReportController : Controller
{
private readonly ConnectionString myString;
public ReportController(IOptions<ConnectionString> connectionString)
{
myString = connectionString.Value;
}
public ActionResult Reporting_Totals()
{
string connectionString = myString.ToString();
DataTable dt = new DataTable();
using (OracleConnection oracleConnection = new OracleConnection())
return View();
}
Run Code Online (Sandbox Code Playgroud)
连接字符串类
public class ConnectionString
{
private string connectionString { get; set; }
// enable set in singleton property instance to work correctly.
//public static …Run Code Online (Sandbox Code Playgroud) appsettings ×10
c# ×8
asp.net-core ×3
asp.net ×2
.net ×1
.net-core ×1
azure ×1
json ×1
secret-key ×1
serilog ×1
sharepoint ×1
uac ×1
web-config ×1
windows-7 ×1