2013-11-04 62 views
3

我听说允许用户使用用户名提交表单并不是一个好的安全做法。这导致我相信,它不是允许在URL中看到用户标识的好习惯。但我需要一种允许用户查看其他用户配置文件的方法。我应该如何链接到ASP.NET MVC 5中的用户配置文件页面?

我在想,而不是使用

@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); 
    } 
+0

你能够得到用户名他insode控制器,是吗? – LINQ2Vodka

+0

在URL或表单POST中发送ID没有任何问题。你打算混淆数据库中的每一个主键?http://stackoverflow.com/questions/2087441/using-primary-key-in-asp-net-mvc-urls – Tommy

回答

5

我喜欢的用户名的方式,因为它消除了已查找的标识,如果你的要求知道用户名,并且它也使得用户通过迭代可能的ID列表来“浏览”用户信息更加困难。

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

相关问题