gpt4 book ai didi

asp.net-mvc - 使用 SimpleMembership 获取用户信息

转载 作者:行者123 更新时间:2023-12-03 18:40:48 24 4
gpt4 key购买 nike

仍在尝试使用 MVC4 来掌握新的 SimpleMembership。我更改了模型以包含工作正常的 Forename 和 Surname。

我想更改登录时显示的信息,而不是在 View 中使用 User.Identity.Name 我想做一些类似 User.Identity.Forename 的事情,完成此操作的最佳方法是什么?

最佳答案

Yon 可以利用 @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") ]
}

这会做一些事情并带来一些选择:
  • 使您的 View 不必嗅探 HttpContext。让 Controller 来处理。
  • 您现在可以将其与 [OutputCache] 结合使用属性,因此您不必在每个页面中都呈现它。
  • 如果您需要向 UserInfo 屏幕添加更多内容,只需更新 ViewModel 并填充数据即可。没有魔法,没有ViewBag等
  • 关于asp.net-mvc - 使用 SimpleMembership 获取用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12572819/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com