【问题标题】:Asp.net Mvc - Need help understanding how to display header content when user is authenticated / not authenticatedAsp.net Mvc - 需要帮助了解如何在用户通过身份验证/未通过身份验证时显示标题内容
【发布时间】:2012-03-23 17:07:16
【问题描述】:

我正在使用 asp.net mvc 4。

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

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

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

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

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

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

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

谢谢

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      有多种方法,这完全取决于您使用的是哪种授权机制。 一般规则是你查询(这里是伪代码) @if(IsAuthenticated(currentUser) { 呜呜呜 } 别的 未经身份验证的内容

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

      它会引导你完成你想要完成的事情。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-24
        • 2019-01-29
        • 2020-12-02
        • 2011-07-17
        • 2020-07-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多