【发布时间】:2020-03-04 21:44:13
【问题描述】:
我目前正在实现一些基于 Asp.Net Core Identity 的 UserManger 设计的服务。 在实现中,我想知道如果无法将取消令牌传递给 UserManager 的方法,用户管理器如何支持取消。
我还看到用户管理器内部有一个取消令牌属性(具有默认值),由它在内部使用,并将传递给使用的异步方法。但是由于其保护级别,此属性不可访问
protected virtual CancellationToken CancellationToken => CancellationToken.None;
如何将我在控制器中使用的取消令牌传递给用户管理器?我是否必须重载它并通过新方法将其传递给它?
public class MyUserManager : UserManager<MyUser>
{
/* ... Other stuff... */
protected override CancellationToken CancellationToken {get;set;}
public void SetCancellationToken(CancellationToken cancellationToken)
{
this.CancellationToken = cancellationToken;
}
}
这是使用 userManager 完成 Cancellation 的正确方法吗?如果是:为什么这与使用取消令牌的其他组件不同,例如 EF Core,您必须通过方法参数传递 CancellationToken?
【问题讨论】:
标签: asp.net-core cancellation asp.net-core-3.0 cancellation-token