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

Bob*_*Bob 3 asp.net-mvc asp.net-mvc-5

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

我想知道,而不是使用

@Html.ActionLink("Details", "Details", new { id = item.Id }) 
Run Code Online (Sandbox Code Playgroud)

如果我应该使用

@Html.ActionLink("Details", "Details", new { id = item.username }) 
Run Code Online (Sandbox Code Playgroud)

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

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

这是我的链接

@Html.ActionLink(person.FullName, "Details","User" , new { UserName = person.UserName }, null)
Run Code Online (Sandbox Code Playgroud)

这是我的控制器动作

    // 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);
    }
Run Code Online (Sandbox Code Playgroud)

Ale*_*sko 5

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

此问题也可能会被标记.:)