我听说允许用户提交带有用户 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);
}