【问题标题】:How to make a div accessable only for authenticated users如何使只有经过身份验证的用户可以访问 div
【发布时间】:2012-12-24 13:36:32
【问题描述】:

我有一个内页.aspx,并且我创建了一个名为 Premium 的角色。我希望所有用户都能看到 page.aspx,但只有高级用户才能看到 div。

我的 web.condig

<location path="?">
<system.web>
    <authorization>
      <allow roles="Premium" />
      <deny users="*" />
    </authorization>
</system.web>

我现在不知道怎么写,所以只有高级角色的用户才能看到

【问题讨论】:

  • 当您说 div 时,您的意思是页面的一部分被 div 扭曲 - 正确吗?
  • 您应该阅读一些关于身份验证、授权、验证(在 WebServer/Controllers/Code-Behind 中)和安全过滤(在 aspx 文件等中)的基础知识,以及为什么应该一次使用所有这些。

标签: c# asp.net web-config roles


【解决方案1】:

在您的 page.aspx 中,执行以下操作:

<%if (Request.IsAuthenticated){ %>
    <%if HttpContext.Current.User.IsInRole("premium"){ %>
        <div>premium content</div>
    <%} %>
<%}%>

【讨论】:

    【解决方案2】:

    您可以将高级部分设为局部视图,在控制器中有自己的方法,为此您可能需要角色 Premium

    【讨论】:

    • “部分视图”一词实际上是 MVC 的东西 - 并且问题出现(基于可用的少量信息!)是一个网络表单问题。
    【解决方案3】:

    最简单的方法是使用if 语句来控制页面该部分的输出:

    <% if(User.IsInRole("Premium")) { %>
    <div> blah </div>
    <% } %>
    

    当然,您可以创建一个包含此逻辑的UserControl 或类似名称,从而将条件表达式推出主机页面并让页面始终简单地呈现控件。

    【讨论】:

      猜你喜欢
      • 2016-01-15
      • 2017-01-17
      • 1970-01-01
      • 2014-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-09
      • 1970-01-01
      相关资源
      最近更新 更多