ログイン成功後にユーザーデータにアクセスしようとすると、NullReferenceExceptionが発生します。ここでの照会は、サインインプロセスで照会されるユーザーデータがいつ実際に入手可能かについてです。SingInManagerを呼び出して成功を返すと、ユーザーデータが利用できません。
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
var sh = new SoapHelper();
var user = UserManager.FindById(User.Identity.GetUserId());
Session["UserExists"] = true;
Session["StartDate"] = DateTime.Now.ToString("yyyyMMdd");
Session["EndDate"] = DateTime.Now.ToString("yyyyMMdd");
Session["UserCompany"] = user.CompanyID;
エラーがスローされた場合、コードの最後の行があるが、私は必要なデータを取得するためのUserManagerにアクセスすることはできませんよ。ここに私はアカウントコントローラのログイン方法に置かれているコードがあります現時点ではログインプロセスのUserテーブルから?
ご協力いただきますようお願い申し上げます。
'user'は正常に返されますか? 'User.Identity.GetUserId()'は値を返しますか? –
私の問題を解決することはできましたが、私自身の答えをまだ受け入れることはできません。以下を参照してください。 – Nate58