我有一个使用存储库的方法(userRepo):
public override Task<IdentityResult> CreateLocalUserAsync(IUser user, string password, CancellationToken cancellationToken)
{
var task = new Task<IdentityResult>(() => {
TUserEntity newUser = new TUserEntity
{
Id = user.Id,
UserName = user.UserName,
Password = password
};
userRepo.Save(newUser).Flush();
return new IdentityResult(true);
}, cancellationToken);
task.Start();
return task;
}
该 userRepoobject具有使用的依赖项 HttpContext.Current。这两个都是使用ninject解决的 InRequestScope。
在默认情况下调用上述方法 AccountController 在Mvc 5中:
var result = await IdentityManager.Users.CreateLocalUserAsync(user, model.Password);
我尝试将此设置添加到web.config:
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
另外,我肯定使用的是.NET 4.5。这也在我的web.config中:
<httpRuntime targetFramework="4.5" />
无法从中获取信息 HttpContext 在我开始任务之前因为依赖性 userRepo 在任务中使用信息,并使用Ninject解析两个对象。
我怎样才能确保这一点 HttpContext.Current 不会是空的吗?