MVC4 を使用した新しい SimpleMembership をまだ把握しようとしています。モデルを変更して、正常に機能する Forename と Surname を含めました。
ログイン時に表示される情報を変更したいので、ビューで User.Identity.Name を使用する代わりに、User.Identity.Forename のようなことをしたいのですが、これを達成する最善の方法は何ですか?
MVC4 を使用した新しい SimpleMembership をまだ把握しようとしています。モデルを変更して、正常に機能する Forename と Surname を含めました。
ログイン時に表示される情報を変更したいので、ビューで User.Identity.Name を使用する代わりに、User.Identity.Forename のようなことをしたいのですが、これを達成する最善の方法は何ですか?
@Html.RenderAction()
ASP.NET MVC で利用可能な機能を利用して、この種の情報を表示できます。
_Layout.cshtml ビュー
@{Html.RenderAction("UserInfo", "Account");}
モデルを見る
public class UserInfo
{
public bool IsAuthenticated {get;set;}
public string ForeName {get;set;}
}
アカウント コントローラー
public PartialViewResult UserInfo()
{
var model = new UserInfo();
model.IsAutenticated = httpContext.User.Identity.IsAuthenticated;
if(model.IsAuthenticated)
{
// Hit the database and retrieve the Forename
model.ForeName = Database.Users.Single(u => u.UserName == httpContext.User.Identity.UserName).ForeName;
//Return populated ViewModel
return this.PartialView(model);
}
//return the model with IsAuthenticated only
return this.PartialView(model);
}
ユーザー情報ビュー
@model UserInfo
@if(Model.IsAuthenticated)
{
<text>Hello, <strong>@Model.ForeName</strong>!
[ @Html.ActionLink("Log Off", "LogOff", "Account") ]
</text>
}
else
{
@:[ @Html.ActionLink("Log On", "LogOn", "Account") ]
}
これはいくつかのことを行い、いくつかのオプションをもたらします: