CreateAsync中的HttpContext.Current == null,但FindByNameAsync(IUserStore)中没有

时间:2014-07-11 17:23:10

标签: asp.net async-await asp.net-identity

我正在尝试实现IUserStore Identity 2和MVC 5

在我的UserStore实现中

public class IdentityUserStore : IIdentityUserLoginStore, IIdentityUserClaimStore, IIdentityUserRoleStore, IIdentityUserPasswordStore, IIdentityUserSecurityStampStore, IIdentityUserStore, IIdentityUserEmailStore, IDisposable

我没有在

中看到HttpContext.Current
    public async Task CreateAsync(Model.Identity.IdentityUser user)
    {
        // HttpContext.Current == null here
        if (user as object == null)
            throw new ArgumentNullException("user");

        await Task.Run(() => {_userRepository.Add(user);});
        await _uow.CommitAsync();
    }

中不为空
    public async Task<Model.Identity.IdentityUser> FindByNameAsync(string userName)
    {
        // HttpContext.Current != null it has all my data
        if (userName as object == null)
            throw new ArgumentNullException("userName");

        return (await _userRepository.FindByAsync(x => x.Where(y => y.UserName == userName))).FirstOrDefault();
    }

两个方法都属于实现

的同一个类
 IMyIdentityUserStore : IUserStore<MyIdentityUser,Int64>

所以基本上当我在我的网站上注册新用户时,我输入电子邮件,密码并在点击注册按钮后,它会抛出&#34;对象引用未设置为对象的实例。&#34;当存储库试图访问存储在HttpContext.Current.Items中的DbContext时。

那里有什么问题,为什么它有不同的CreateAsync和FindByNameAsync上下文?

0 个答案:

没有答案