私は2つのコントローラーを持っています。 HomeController
およびAccountController
である。私は_Layout.cshtml
と部分ビュー_Login.cshtml
を持っており、_Layout
ビューのヘッダーセクションに表示されます。 HomeController
のデフォルト値はIndex()
です。剃刀私を覚えていて、ユーザー情報を埋め込む
初めての場合、アカウントをお持ちですか?ログイン。ログインはAccountController
のログインメソッドを指すリンクです。ログオンビューには、UserName、Passwordフィールド、およびRemember meのチェックボックスが含まれています。ユーザーが初めてログインし、Remember Meをチェックすると、MySecurityRepository
と呼びます:ユーザーを検証し、プロファイル(住所、電話番号、電子メールなど)の基本情報を取得します。UserInfo
オブジェクトはヘッダーにはUserNameがリンクとして表示されます。これはすべて動作します。
ユーザーがブラウザを閉じてサイトを再度開きます。ユーザーが既にログインしているのを確認しました。Request.IsAuthenticated
は本当ですが、ユーザーのプロフィールを再度取得してキャッシュする方法を教えてください。ここで
_Login
部分図のように見えるものです...
<div id="login">
@if (Request.IsAuthenticated)
{
<text>
[@Html.ActionLink((HttpContext.Current.Session["UserInfo"] as UserInfo).FirstName, "Profile", "Account")]
[@Html.ActionLink("Log Off", "LogOff", "Account")]
</text>
}
else
{
<span>Have an account?</span>
@Html.ActionLink("Log In", "LogOn", "Account")
} </div>
感謝。
私はMVC 3を学習しています。子どもの行動と呼ばれるものがあることを認識していませんでした。 – CodeWzrd
@ CodeWzrdは、ASP.NET MVC 2で導入されたもので、各ビューに表示する必要のあるレイアウトの部分に対して別々のMVCライフサイクルを定義できるので非常に便利です。 –