ASP.NET:根据 web.config 文件中的位置配置显示或隐藏页面中的链接
我有一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我记得的唯一方法是获取该 url 的 SiteMapNode 并使用 IsAccessibleToUser 方法进行检查。
The only way i remember - to get SiteMapNode for that url and to use IsAccessibleToUser method to check.