MVC3:在前端显示用户名,但控制器必须工作用户ID

时间:2011-10-06 10:50:57

标签: asp.net-mvc-3

我希望我不会抱怨我的许多问题......

我正在使用asp.net配置在ASPNETDB.MDF数据库中创建用户。

我有一个客户端MVC,我想在创建,编辑或删除客户端时,它必须显示执行该操作的用户的user_name和last_user_name。客户端模型中的这两个属性。我希望我的控制器只处理用户的ID(PK),而不是他们的名字。我只知道如何使控制器使用用户名。我如何确保使用id完成任何功能,但显示是user_name?这是我在clientcontroller中的create方法

    [Authorize]
    public ActionResult Create()
    {
        var model = new title
        {

            create_dt = DateTime.Now,
            last_maint_dt = DateTime.Now,
            row_version = 1,
            status = "ACTIVE",
            user_id = System.Web.HttpContext.Current.User.Identity.Name,
            last_user_id = System.Web.HttpContext.Current.User.Identity.Name

        };

        return View(model);
    }

1 个答案:

答案 0 :(得分:0)

如果您使用默认的ASP.NET成员资格提供程序,则可以通过访问System.Web.Security.Membership找到帐户的用户GUID。然后,您可以使用GetUser()方法并将用户名作为参数传递给它。

//Get Current User ID
var user = System.Web.Security.Membership.GetUser(User.Identity.Name);

if (user != null)
{
    string id = user.ProviderUserKey.ToString();
}

如果你有GUID并想要用户名

var user = System.Web.Security.Membership.GetUser(id);
if (user != null)
{
    string username = user.UserName;
}