ユーザのアカウントとやりとりする私のアクションについては、 "TheUser"オブジェクトを作成して、そのオブジェクトを "ViewData [" TheUser "]"私のコントローラ上の任意のアクションが呼び出されるとすぐに。コントローラのコンストラクタでUser.Identity.Nameを持つユーザを定義する
ユーザがログインしている場合は、データベースからユーザの情報を取得し、そうでなければ「ユーザ」オブジェクトはnullになります。
コントローラのコンストラクタで "User.Identity.Name"にアクセスしようとしましたが、アクションが呼び出される前に作成されていません。
カスタム認可フィルタがありましたが、「TheUser」オブジェクトを作成してViewDataに格納することはできません。
これは私が達成したいものの簡単な抜粋です:
[Authorize]
public class HomeController : Controller
{
User TheUser;
public HomeController()
{
TheUser = User.Identity.IsAuthenticated ? UserRepository.GetUser(User.Identity.Name) : null;
ViewData["TheUser"] = TheUser;
}
}
この答えは、それはすべてのアクションのために使用されているMVC3 http://stackoverflow.com/a/1506311/511438 –