現在、MVCを使用して、ユーザーがサイトメニューを参照する前にログイン画面を追加する時点で学習しています。 私の周りGoogleで検索してのみにHomeControllerの上にこれを追加することにより、認証を追加する方法を見つけました:ページを切り替えるとMVCログイン画面が表示され続ける
[Authorize]
私もweb.configファイルでこれを追加しました:今
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880"/>
</authentication>
ログイン作品を、しかし、私はページを変更するとすぐに再度ログインを要求し、最後にアクセスしたページにリダイレクトされません。
ログに記録されたユーザーセッションをMVCに保持する方法はありますか?
EDIT:ログイン用のコード
//Login
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(UserAccount user)
{
using (OurDbContext db = new OurDbContext())
{
var usr = db.userAccount.Single(u => u.Username == user.Username && user.Password == user.Password);
if (usr != null)
{
Session["UserID"] = usr.UserID.ToString();
Session["Username"] = usr.Username.ToString();
return RedirectToAction("Index");
}
else
{
ModelState.AddModelError("", "Username or Password is wrong.");
}
}
return View();
}
public ActionResult LoggedIn()
{
if (Session["UserId"] != null)
{
return View();
}
else
{
return RedirectToAction("Login");
}
}
があなたを表示する場合は、あなたの内側に、現在のセッションのための認証チケットを設定するには、以下の行を追加する必要がありますログインメソッドのコード –
@StephenMuecke Ok – OreoFanatics
の上に追加しました。あなたは 'Session'に詳細を追加しません。そして、あなたは確かにパスワードを平文でデータベースに保存することは決してありません(ハッシュします)。私はあなたがMVCサイトに行き、[セキュリティ、認証と認可](https://www.asp.net/mvc/overview/security)のセクションのチュートリアルで作業することをお勧めします。 –