小编Mat*_*ias的帖子

如何在asp.net core 2.0中允许多个具有不同发行者的JWT

有没有办法在单个 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)

我之所以要处理多个颁发者,是因为我需要处理具有不同权限的不同用户类型。为了在微服务架构环境中只允许特定用户使用某些服务,我想为每个用户类型使用不同的发行者发行令牌。

jwt asp.net-core-2.0

8
推荐指数
1
解决办法
6880
查看次数

如何解析时区偏移字符串?

我从我的时区偏移的数据库中检索一个值。我得到的价值是及时的。

例如,它可能是 "-5:00""+7:30""+3:00",等。

如何将其转换为 double 以便我可以AddHours()DateTime对象进行调用?

c# timezone datetime offset

4
推荐指数
1
解决办法
1321
查看次数

如何使用 CSV 助手附加 CSV?

我浏览了文档,但没有看到任何内容。我正在使用文档中相同的写入函数,但问题是我还需要附加。到目前为止,我已经尝试阅读它,而不是将 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)

希望有人可以帮忙!

c# csvhelper

4
推荐指数
1
解决办法
4861
查看次数

尝试按对象分组作为键时,字段必须是累加器对象错误

我正在尝试按集合中的多个属性对文档进行类型安全的分组。我发现问题不在于按多个属性本身进行分组,而是键是对象 ( 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

1
推荐指数
1
解决办法
3405
查看次数