我应该如何链接到ASP.NET MVC 5中的用户配置文件页面?

时间:2013-11-04 17:22:22

标签: asp.net-mvc asp.net-mvc-5

我听说允许用户提交带有用户ID的表单并不是一个好的安全措施。这让我相信允许在url中看到用户id是不好的做法。但我需要一种方法来允许用户查看其他用户个人资料。

我想知道,而不是使用

@Html.ActionLink("Details", "Details", new { id = item.Id }) 

如果我应该使用

@Html.ActionLink("Details", "Details", new { id = item.username }) 

然后在控制器中按用户名查找用户并返回用户。

这是解决这个问题的正确方法吗?

现在是我的链接

@Html.ActionLink(person.FullName, "Details","User" , new { UserName = person.UserName }, null)

现在是我的控制器动作

    // GET: /User/Details?UserName=bbob
    public ActionResult Details(string UserName)
    {
        if (UserName == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        ApplicationUser aspnetuser = UserManager.FindByName(UserName);

        if (aspnetuser == null)
        {
            return HttpNotFound();
        }
        return View(aspnetuser);
    }

1 个答案:

答案 0 :(得分:5)

我更喜欢用户名方法,因为它消除了如果您已经知道用户名则必须查找Id的要求,并且还使用户通过迭代可能的列表来“浏览”用户信息变得更加困难IDS。

而且这个问题可能会被标记出来。 :)