我们需要替换主 ASP.NET 应用程序中的菜单系统。所以我们很自然地关注 ASP.NET SiteMapProviderMenu 控制。然而,我们还需要足够的安全性来防止用户直接输入他们不应访问的 URL。我们可以通过放置来做到这一点 <location> 条目在 网络配置 并单独保护它们,但这将成为跨多个 Web 服务器进行管理的 PITA。

有没有 Provider 可以用来提供相当于 <location> 条目?我一直没能找到一个,考虑到它的存在,这有点令人沮丧 配置位置 班级。

或者,我们在 SiteMapProvider 中是否缺少一个配置选项来限制用户访问他们不应该访问的 URL?

有帮助吗?

解决方案

为什么不创建权限和配置文件来管理用户可以看到的页面?我通常创建一个实现 IPrincipal 安全接口的用户类。对于应用程序的每个请求,您都会检查特定用户的权限并输出该用户允许的 SiteMap 节点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top