ASP.NET:根据 web.config 文件中的位置配置显示或隐藏页面中的链接

发布于 2024-11-16 07:40:21 字数 889 浏览 0 评论 0原文

我有一个 ASP.NET 网站,web.config 文件中有一些位置,例如

<location path="SomeWhere">
  <system.web>
    <authorization>
      <allow roles="some-role"/>
      <deny users="*"/>
    </authorization>
  </system.web>
</location>

然后,在该网站的母版页中,我有一组链接,我想根据以下内容显示或隐藏一些链接用户的角色。我目前正在这样做:

<% if (HttpContext.Current.User.IsInRole("some-role")) { %>
  <asp:HyperLink ID="SomeLink" runat="server" 
    NavigateUrl="~/SomeWhere/">Somewhere</asp:HyperLink>
<% } %>                 

我想避免在 web.config 文件和页面代码中重复角色信息,并将上述检查替换为诸如“

<% if (UserCanAccessLocation("Somewhere")) { %>
  <asp:HyperLink ID="SomeLink" runat="server" 
    NavigateUrl="~/SomeWhere/">Somewhere</asp:HyperLink>
<% } %>                 

这可能吗?”之类的内容。

I have an ASP.NET web site with some locations in the web.config file, e.g.

<location path="SomeWhere">
  <system.web>
    <authorization>
      <allow roles="some-role"/>
      <deny users="*"/>
    </authorization>
  </system.web>
</location>

Then, in the master page for the site, I have a set of links, and I would like to show or hide some of the links according to the user's roles. I am currently doing this:

<% if (HttpContext.Current.User.IsInRole("some-role")) { %>
  <asp:HyperLink ID="SomeLink" runat="server" 
    NavigateUrl="~/SomeWhere/">Somewhere</asp:HyperLink>
<% } %>                 

I would like to avoid duplicating the role information in the web.config file and in the page code, and to replace the above check with something like

<% if (UserCanAccessLocation("Somewhere")) { %>
  <asp:HyperLink ID="SomeLink" runat="server" 
    NavigateUrl="~/SomeWhere/">Somewhere</asp:HyperLink>
<% } %>                 

Is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寒江雪… 2024-11-23 07:40:21

我记得的唯一方法是获取该 url 的 SiteMapNode 并使用 IsAccessibleToUser 方法进行检查。

The only way i remember - to get SiteMapNode for that url and to use IsAccessibleToUser method to check.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文