小编old*_*bam的帖子

SessionId /身份验证令牌生成的最佳实践

我见过有人使用UUID进行身份验证令牌生成.但是,在RFC 4122中说明了这一点

不要以为UUID难以猜测; 例如,它们不应被用作安全功能(仅仅拥有访问权限的标识符).

我想知道,在Java和.NET中使用什么算法用于SessionId/AuthenticationToken生成.在具有超过平均安全需求的应用程序中,UUID确实不适合用于这些目的吗?

authentication uuid sessionid

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

执行多个任务时,为什么TaskCanceledException没有存储在Task.Exception属性中?

我有一个应用程序,它对每个不同的项目执行对RESTful API的多个后续HTTP请求。

我必须处理执行这些请求所产生的异常的代码类似于Stephen Cleary 在C#CookbookConcurrency in C# 2.4节中描述的代码:

var tasks = new List<Task>();
foreach(var item in items)
{
    tasks.Add(ProcessItemAsync(item));
}
var parentTask = Task.WhenAll(tasks);
try {
    await parentTask;
} catch {
    var exceptions = parentTask.Exception;
    if (exceptions != null) {
        // log individual exceptions
    }
}
Run Code Online (Sandbox Code Playgroud)

在分析日志时,我注意到某些处理并未导致发送所有需要的请求。但是,日志中没有记录异常。

在调试应用程序时,我发现由于Web API超时,调用端点之一会导致抛出TaskCanceledException。但是,parentTask.Exceptionproperty是null,因此,我没有在日志中正确记录此异常。

我的问题如下:

  • 为什么TaskCanceledException不存储在Task.Exception属性中?
  • 是否有任何其他类似于TaskCanceledException的异常不会存储在Task.Exception属性中?

c# task-parallel-library async-await

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