Asp.net Mvc - 需要帮助了解如何在用户进行身份验证/未经过身份验证时显示标头内容

时间:2012-03-23 17:07:17

标签: asp.net-mvc

我正在使用asp.net mvc 4.

我有一个标题有两个部分,顶部和底部。顶部只显示静态链接和图像。

当用户未登录时,底部将显示登录按钮和其他信息。

用户登录底部后,将显示用户特定信息和整体游戏信息。我想在用户向网站上的页面发出请求时重新加载此信息,并确定数据是陈旧的。

使用asp.net Web表单我可以创建一个用户控件来表示底部部分功能。

它出现在asp.net mvc中我可以使用局部视图,然后调用RenderAction,这将允许在渲染底部时调用控制器动作。

在控制器操作中,我可以为经过身份验证的用户呈现一个部分视图,为未经身份验证的用户呈现另一个部分视图。如果确定用户已经过时,我还可以为经过身份验证的用户重新加载数据。

这是最好的方法吗?我的底部不需要ajax。

由于

2 个答案:

答案 0 :(得分:3)

这取决于底部的复杂程度。如果没有太多逻辑,您可以在单个局部视图中放置经过身份验证和未经身份验证的html代码。如果它们完全不同,请使用两个分开的部分视图即可。此外,只需将按钮部分放入母版页也是一种常见的做法,没有太大区别。

如果您利用.net mvc的身份验证框架(这应该是最佳做法),您只需在Action中使用 User.Identity.IsAuthenticated 即可。在“查看”页面中,它是 Page.User.Identity.IsAuthenticated 。它可以检查当前用户是否已登录。

答案 1 :(得分:1)

有几种方法,这取决于您使用的授权机制类型。 一般规则是你查询(这里是伪代码) @if(IsAuthenticated(currentUser) {  bla bla } 其他 未经过身份验证的内容

使用示例和文档查看此项目 http://nerddinnerbook.s3.amazonaws.com/Intro.htm

它将引导您完成您想要完成的任务。

相关问题