有没有办法在单个 asp.net core 2.0 应用程序中处理来自多个颁发者的 JWT?
这是我目前检查令牌的方式:
public void ConfigureServices(IServiceCollection services)
{
TokenValidationParameters tokenValidationParameters = new TokenValidationParameters
{
// ...
ValidateIssuer = true,
ValidIssuer = options.Issuer, // <-- could this be a list of issuers?
// ...
};
services.AddAuthentication()
.AddJwtBearer(jwtOptions =>
{
jwtOptions.TokenValidationParameters = tokenValidationParameters;
});
services.AddAuthorization(authOptions =>
{
authOptions.DefaultPolicy = new AuthorizationPolicyBuilder(JwtBearerDefaults.AuthenticationScheme).RequireAuthenticatedUser().Build();
});
}
public void Configure(IApplicationBuilder app)
{
// ...
app.UseAuthentication();
}
Run Code Online (Sandbox Code Playgroud)
我之所以要处理多个颁发者,是因为我需要处理具有不同权限的不同用户类型。为了在微服务架构环境中只允许特定用户使用某些服务,我想为每个用户类型使用不同的发行者发行令牌。
我从我的时区偏移的数据库中检索一个值。我得到的价值是及时的。
例如,它可能是 "-5:00","+7:30","+3:00",等。
如何将其转换为 double 以便我可以AddHours()对DateTime对象进行调用?
我浏览了文档,但没有看到任何内容。我正在使用文档中相同的写入函数,但问题是我还需要附加。到目前为止,我已经尝试阅读它,而不是将 CSV 添加到列表中,而不是将列表写入 CSV。有更好的方法可以附加吗?
我对自己的变量使用的确切写入函数
var records = new List<Foo>
{
new Foo { Id = 1, Name = "one" },
};
using (var writer = new StreamWriter("path\\to\\file.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteRecords(records);
}
Run Code Online (Sandbox Code Playgroud)
我用来阅读但带有我自己的变量的内容:
using (var reader = new StreamReader("path\\to\\file.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
var records = csv.GetRecords<Foo>();
}
Run Code Online (Sandbox Code Playgroud)
希望有人可以帮忙!
我正在尝试按集合中的多个属性对文档进行类型安全的分组。我发现问题不在于按多个属性本身进行分组,而是键是对象 ( new { }) 而不是字符串。
这有效:
collection.Aggregate().Group(x => x.Name, x => new { Name = x.Key, Count = x.Sum(s => 1) }).ToList();
Run Code Online (Sandbox Code Playgroud)
这不起作用:
collection.Aggregate().Group(x => new { Name = x.Name }, x => new { Name = x.Key.Name, Count = x.Sum(s => 1) }).ToList();
Run Code Online (Sandbox Code Playgroud)
错误是:
MongoDB.Driver.MongoCommandException:“命令聚合失败:字段“名称”必须是累加器对象。
当我将不起作用的查询转换为字符串时,我得到以下信息:
aggregate([{ "$group" : { "_id" : { "Name" : "$Name" }, "Name" : "$_id.Name", "Count" : { "$sum" : 1 } } }])
Run Code Online (Sandbox Code Playgroud)
我想这里的问题是这部分"Name" : "$_id.Name"。我该如何解决这个问题?
我目前使用的是 2.8.0 版的 …
c# mongodb aggregation-framework .net-core mongodb-.net-driver