小编Jaf*_*s82的帖子

ASP.NET Core 2.0 应用程序超时时重定向到绝对 URL

我正在运行一个 ASP.NET Core 2.0 应用程序,该应用程序利用应用程序网关后面的 Azure 应用服务中托管的 ASP.NET Identity。

我设置了一个自定义域,通过 SSL 指向应用程序网关,然后终止 SSL 并将请求转发到我的后端池,该池使用超过 80 的默认 *.azurewebsites.net 域。

例如,请求 custom.com:443 ---> 应用程序网关 ---> custom.azurewebsites.net:80

我已使用以下中间件将 ASP.NET Core 2.0 应用程序配置为在 1 小时后将用户会话超时:

services.ConfigureApplicationCookie(options =>
{
    options.ExpireTimeSpan = TimeSpan.FromMinutes(60);
});
Run Code Online (Sandbox Code Playgroud)

当用户超时然后执行另一个操作时,他们将被重定向到 custom.azurewebsites.net:80 上应用服务的登录页面,而不是通过应用程序网关返回。

有没有一种方法可以在超时时重定向到绝对 URL 而不是相对 URL?

c# azure http-redirect asp.net-core asp.net-core-2.0

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

异步填充字典

我有一个简单的foreach循环(如下所示),它遍历一个集合并进行异步 API 调用以根据当前迭代器值获取数据。

foreach (var group in groups)
{
    var usersInGroup = await this.tableauService.GetUsersInTableauGroup(group.Id);

    // do work with `usersInGroup`
}
Run Code Online (Sandbox Code Playgroud)

我不想每次迭代都进行 API 调用,而是想为每个 API 调用创建一个异步任务并同时执行它们,结果填充以group.Id. 这可能吗?

在我的脑海中,代码看起来像:

IList<Task<string[]>> tasks = new List<Task<string[]>>();
IDictionary<string, string[]> dictionary = new Dictionary<string, string[]>();

foreach (var group in groups)
{
    tasks.Add(this.tableauService.GetUsersInTableauGroup(group.Id));
    // Somehow define callback of each task to hydrate dictionary
}

await Task.WhenAll(tasks);
Run Code Online (Sandbox Code Playgroud)

.net c# .net-core asp.net-core

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