如何获取另一个UserName?

时间:2014-12-03 19:08:38

标签: asp.net-mvc-4

我想询问当我已经使用一个用户名登录时如何访问其他用户的用户名?

我有一个控制器,我向Users表中添加了一些字段。

public ActionResult Index()
{
    var username = db.Users.Find(User.Identity.GetUserId());
    return View(username);
}

public ActionResult Edit()
{

    ApplicationUser profile = db.Users.Find(User.Identity.GetUserId());
    if (profile == null)
    {
        return HttpNotFound();
    }
    return View(profile);
}

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "Id, Nickname, FirstName, LastName, SecondName, City, Address, Description, TelNum")] ApplicationUser profile)
{
    if (ModelState.IsValid)
    {
        var user = db.Users.Find(profile.Id);
        if (user == null)
        {
            return HttpNotFound();
        }
        user.UserName = User.Identity.GetUserName();
        user.FirstName = profile.FirstName;
        user.SecondName = profile.SecondName;
        user.LastName = profile.LastName;
        user.Address = profile.Address;
        user.City = profile.City;
        user.TelNum = profile.TelNum;
        user.Description = profile.Description;
        db.Entry(user).State = EntityState.Modified;
        db.SaveChanges();
        return Redirect("/Profile/Index/" + profile.Id);
    }
    return View(profile);
} 

当我点击该链接时我想要

<div>
    <a href="Profile/Index/" style="color:black"><b>@item.Author</b></a>
</div>

转到其他用户个人资料。

1 个答案:

答案 0 :(得分:0)

您没有“访问用户名”。现在它是如何运作的。

您需要设计应用程序,使您可以基于任意用户呈现页面,确保如果您没有显示敏感信息或允许用户编辑信息,他们就不能到。

这意味着您需要提供一种基于其他因素查找用户的方法,例如用户名或用户ID。通常,这会在URL上传递,例如http://example.com/profiles/theuser

然后,在profilescontroller.index方法中,您获取该ID,在数据库中查找用户,并根据该信息呈现页面。但是,这是你必须写的所有东西。