如何在 ASP.NET Web 应用程序上使用表单身份验证最好地处理基于角色的权限?

2024-01-07

我正在使用ASP.NET 登录控件 http://msdn.microsoft.com/en-us/library/ms178329.aspx and 表单验证 http://msdn.microsoft.com/en-us/library/aa480476.aspx用于 ASP.NET Web 应用程序的成员资格/凭据。

我有两个角色:

  • Users
  • 管理员

我希望页面可供四个不同的组查看:

  • 每个人(默认、帮助)
  • 匿名的(创建用户、登录、恢复密码)
  • Users (更改密码、数据输入)
  • 管理员(Report)

扩展中的示例ASP.NET HOW DO I 视频系列:成员资格和角色 http://www.asp.net/learn/videos/video-45.aspx,我已将这些页面文件放入此类文件夹中:

我使用 ASP.NET 网站管理工具来设置每个文件夹的访问规则。

它有效,但对我来说似乎很笨拙并且会产生问题当 Login.aspx 不在根目录时 https://stackoverflow.com/questions/33089/how-do-i-use-aspnet-login-controls-when-my-loginaspx-is-not-at-the-root-of-my-a并与返回网址参数 https://stackoverflow.com/questions/33166/how-do-i-keep-my-loginaspx-pages-returnurl-parameter-from-overriding-my-aspnetLogin.aspx 的。

有一个更好的方法吗?是否有一种简单的方法可以在页面级别而不是文件夹级别设置权限?


我的脑海中浮现出几个解决方案。

  1. 您可以在 web.config 文件中为每个页面设置限制。这将允许您拥有您想要使用的任何文件夹层次结构。但是,每当您添加其他页面时,它都要求您保持 web.config 文件最新。让文件夹结构决定可访问性的好处是,您在添加新页面时不必考虑它。
  2. 让您的页面继承自定义类(即EveryonePage、UserPage、AdminPage 等),并在Page_Load 例程中进行角色检查。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ASP.NET Web 应用程序上使用表单身份验证最好地处理基于角色的权限? 的相关文章

  • 回发 Asp.Net 上的动态用户控件

    我创建了一个项目 user control 它有一个文本框 按钮等 它将有意收集用户想要的项目总数 我在 page load 上动态创建了几个 user control 实例 如果您单击项目数量的添加按钮 它将添加到会话变量中 但是 当用户
  • 从异步方法同步调用 CPU 密集型方法的混乱

    我正在尝试 NET 4 5 的 async await 结构 我正在开发 RESTful Web API 解决方案 我试图弄清楚如何处理 CPU 绑定操作 1 从当前线程同步调用它 或 2 使用Task Run 让我们使用这个例子page
  • MVC4 - ContextDependentView - 是什么意思?

    我刚刚开始使用 MVC4 我看到的第一个操作方法有一些新内容 我查了一下互联网 找不到任何关于此的信息 public ActionResult LogOn return ContextDependentView 有谁知道 ContextDe
  • 更新面板异常处理

    当我在正在构建的 ASP NET Web 应用程序中实现的 UpdatePanel 中发生异常时 它们会导致页面上出现 JavaScript 错误 并在警报中提供一些高级错误输出 这对于开发来说还可以 但是一旦系统投入生产 由于多种原因 这
  • 盒式捆绑包与 MVC4 捆绑包

    我目前正在开发一个原型 ASP NET MVC 3 解决方案 该解决方案将用作多个项目重写的基础 来自 Web 表单 我的目标之一是跨应用程序实现一些脚本管理 而不是我们目前没有的目标 MVC 3有一个缺陷恕我直言 如果您需要在部分视图或模
  • 有没有办法让 ValidationSummary 与客户端验证器一起使用?

    NET ValidationSummary 控件聚合来自回发时触发的验证器的错误消息 有没有某种方法可以让它也显示来自客户端验证器的错误消息 我正在解决的问题是 在长页面上 可能会单击提交按钮 导致某些客户端验证器失败 但永远不会看到错误消
  • 如何将 Telerik RadGrid 默认设置为编辑模式? (ASP.NET)

    我在 RadGrid 中有一个复选框列 我希望用户能够选中 取消选中它并设置附加属性 但是 当网格呈现时 复选框将被禁用 因为网格不处于 编辑模式 我找到的所有示例都希望我经历一个漫长的过程 选择记录 将其置于编辑模式 更改值 保存值 ya
  • 与简单的文件请求相比,您预计 Web 服务请求的响应时间开销是多少?

    我正在开发一个 asp net Web 服务应用程序 以向使用 jQuery ajax 发出请求的小部件提供 json 格式的数据 我一直在使用 FireBug Net 视图来检查数据请求需要多长时间 在我最初的原型中 我只是请求静态 js
  • EditorFor 的最小值和最大值

    我一直在尝试这段代码来设置我的最小值和最大值EditorFor
  • 带有服务总线的 SignalR Azure 云服务

    我使用 SignalR 构建了一个简单的聊天应用程序那里有教程 http www asp net signalr overview getting started tutorial getting started with signalr
  • 如何在asp.net中按下按钮后刷新Gridview

    我正在尝试制作一个简单的图书馆数据库 我在网格视图中列出搜索结果 然后有一个文本框和一个按钮 用户输入 isbn 并单击贷款按钮 然后 如果有足够数量的物品 itemNumber gt 0 则由用户借出 这是用户界面的屏幕截图 我的问题是
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 如何将Php源代码转换为Asp.net代码

    我正在我的博客上开发一个应用程序 我得到了 php 的源代码 我对 php 没有任何了解 这就是为什么我想将 Php 源代码转换为 Asp net 代码 请提供任何帮助 希望这可以帮助 PHP 到 ASP NET 1 x 迁移助手 http
  • qTip2 jquery 与 asp.net 文本框

    我怎样才能实现jquery插件qTip2http craigsworks com projects qtip2 http craigsworks com projects qtip2 与 asp net 文本框 鼠标悬停时的优雅工具提示
  • 如何为网站创建 RSS feed?

    我开发了一个网络应用程序 现在我想为我的网站创建 Rss 提要 在我的应用程序中 我有一个名为电影新闻的模块 其中包含电影明星的最新新闻 现在我想为该模块创建 RSS 提要 该新闻包含标题和描述 如何为我的应用程序创建 RSS 源 这是我用
  • 动态选择和更新 LINQ 结果集中的列值

    我有一个场景 其中存在 LINQ 结果集 我使用了以下查询 var stockDetails from d in db BloodBanks where d bbUserName Session username ToString sele
  • 如何在asp.net中异步执行两个作业

    网 我需要你的帮助请帮助我 请参阅我的代码 如果我的第一份工作完成 则退出btn ok代码隐藏并更新到 ASP NET 屏幕 但同时作业 2 必须工作 正在处理批量电子邮件 protected void btn ok object send
  • 如何从 Web 表单请求返回 HTTP 400 - 错误请求错误?

    这个主题几乎说明了一切 我有一个 EstateReport Web 表单 必须使用 EstateId 请求参数来调用 如果此参数不存在 我想返回适当的 HTTP 错误 如何返回 HTTP 错误 400 作为响应 切线 如果所需的参数不存在
  • javascript 中一次仅选中一个复选框

    I have 3复选框 我只想1一次选中的复选框 下面是我的 html 小提琴 JS小提琴 https jsfiddle net n03jLhqa 我想要这个工作在IE8还请建议如何做 这个怎么样 fiddle http jsfiddle
  • 命名空间“Microsoft”中不存在类型或命名空间名称“AspNet”错误?

    I ve downloaded a website and in VS express open it through file gt open website When I press F5 to debug I get build er

随机推荐