我有一个使用存储库的方法(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;
}
该 userRepo
object具有使用的依赖项 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
不会是空的吗?