この機能を実装する方法について、私はかなり混乱しています。最初に、ユーザーが Web サイトにアクセスすると、サインイン ページが表示されます。
[HttpGet]
public ActionResult SignIn()
{
return View() ;
}
ユーザーが詳細を入力すると、以下が呼び出されます。
[HttpPost]
public ActionResult Sign(SignInModel signInModel)
{
if(service.ValidateUser(signInModel.userName,signInModel.passWord))
{
FormsAuthentication.SetAuthCookie(signInModel.userName, true);return
return RedirectToAction("Index", "Home");
}
}
ただし、テストとして、ログインページに戻ることにしたので、localhost/Account/SignInですが、ホームページにリダイレクトされません.. SOからの同様の質問に対するいくつかの提案された回答を試しました:
[HttpGet]
public ActionResult SignIn()
{
if(HttpContext.User.Identity.IsAuthenticated)
{
return RedirectToAction("Index", "Home");
}
return View() ;
}
しかし、それがどのように機能するのか理解できなかったので、デバッグすることにしました。しかし、間違った を使用していたことが判明しましたIdentity
。
説明するために、私はデフォルトの MVC テンプレートを使用してプロジェクトを機能させていました。そのテンプレートに James でログインしました。しかし、私自身のプロジェクトでは、Peter でログインしました。
しかし、私のプロジェクトでは、 PeterではなくHttpContext.User.Identity
デフォルト Web サイトの James を参照しています。
TL;DR StackOverflow のような情報を保持するにはどうすればよいですか? セッションの有効期限が切れたとき、またはユーザーがサインアウトしたときにのみ、サインイン ページが表示されます。