如何使网站上的链接指向当前用户的页面?我不希望他们获得每个用户的列表,只有他们自己。我正在为我的菜单链接考虑这样的事情:
答案 0 :(得分:3)
我认为最好将用户发送到“我的详细信息”页面,没有任何参数或路由值。
该页面将显示当前用户数据。那么为什么要这样传递呢?
只需将用户重定向到“我的详细信息”页面,然后当用户在该页面时,您可以使用以下方式获取当前用户:HttpContext.CurrentUser。< / p>
不要将用户数据放在路由值中。 而是可以在该页面的控制器中获取它并将其传递给页面。
答案 1 :(得分:1)
如果您希望显示“链接”以显示经过身份验证的用户查看页面的时间,请创建一个返回所需数据的ChildAction:
[Authorize]
[ChildActionOnly]
public ActionResult UserLinks() {
var items = someRepository.GetLinks(User.Identity.Name);
return PartialView(items,"SomePartialView");
}
然后,在视图中使用RenderAction,如下所示:
@{ Html.RenderAction("UserLinks");}
其次,我同意“Afshin Gh”的评论。您可以在Controller中对数据进行编码,而不是在“ActionLink(s)”中传递数据,以便根据需要过滤数据 - 就像我在上面的“UserLinks”方法中显示的那样。这样,有人不能只操纵Url来显示另一个客户的数据。