我有一個IUserStore的自定義實現,因爲我想使用我的存儲庫層。我所有的數據庫表都存儲插入或最後更新行的用戶名。我從HttpContext.Current獲取用戶名,除非在通過UserManager調用存儲庫時,我可以在HttpContext.Current中獲得null。當我自己的業務層調用存儲庫時,一切正常。 (我正在使用異步版本的方法。).Net MVC Identity 2定製用戶存儲HttpContext.Curent爲空
有沒有人知道在UserManager中發生了什麼,爲什麼會丟失當前的httpcontext?
我叫用戶服務從帳戶控制:
var ir = await UserService.ChangePasswordAsync(User.Identity, vm.Password);
用戶服務可以用如下的UserManager類新密碼:
var ir = await Manager.PasswordValidator.ValidateAsync(password);
if (!ir.Succeeded)
return ir;
user.PasswordHash = Manager.PasswordHasher.HashPassword(password);
ir = await Manager.UpdateAsync(user);
的UserManager使用我自己的實現UserStore的:
public Task UpdateAsync(UserEntity user)
{
return UserRepo.UpdateAsync(user);
}
在這裏,當我用調試器停止程序時,在HttpContext.Current中我有null。這是一個問題,因爲用戶存儲庫嘗試獲取用戶名。
你爲什麼不獲取當前登錄的用戶使用:用戶.Identity.Name? – MRFerocius 2014-09-28 15:45:23
用戶屬性在mvc的基礎控制器中定義,因此它只能從控制器訪問。 – 2014-09-28 18:12:10
你能提供一些代碼嗎? – MRFerocius 2014-09-28 21:51:24