asp.net - 如何使用 SQL 存储而不是 web.config 在 ASP.NET 中实现页面授权?

标签 asp.net sql web-config authorization location

例如,我们现在这样做的方式如下:(在 web.config 中)

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

我想做的是将这些信息存储在 SQL 中的某个地方,以便我们可以更轻松地操作这些信息。但我们希望保留 web.config 中的信息提供的相同功能,就像我们可以使用 SqlRoleProvider 而不是在应用程序中硬编码角色一样。换句话说,如果用户当前尝试转到“somePath”并且他们不是“approvedRoles”的成员,那么他们会被重定向回default.aspx,如果他们是“approvedRoles”的成员,那么他们会得到页。我想做同样的事情,但不使用 web.config 作为授权机制。

所以我问的不是如何定义角色,或者如何处理登录到数据库,而是具体如何将上述信息存储在 SQL 而不是 web.config 中。实际上,我现在会选择“除了 web.config 之外的任何地方”。

有什么想法吗?使用“Provider”类可以做到这一点吗?我只是在寻找有关继承内容的指示,也许还有一些 technet 文档。在这方面,我的 googlefoo 缺乏,因为我真的不知道该指向哪里。我真的只是在寻找阿兹曼吗?这个 location-authorization-via-SQL 是否已经在默认的 aspnetdb 中定义了,而我却错过了它?

就此而言,这个问题是否已经在 SO 上被问过而我错过了?你会用谷歌搜索什么?

最佳答案

您可以编写自己的授权控件,手动检查当前用户所处的角色,并将其与页面列表及其各自的角色权限进行比较,然后将此控件嵌入到您的所有页面中。

关于asp.net - 如何使用 SQL 存储而不是 web.config 在 ASP.NET 中实现页面授权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2248803/

相关文章:

asp.net - Visual Studio 2015 中的 "Visual Basic 10.0 does not support readonly auto-implemented properties"错误

asp.net - web.config allowDefinition = MachineToApplication错误

javascript - ASP.NetRequiredFieldValidator自定义EvaluationFunction属性

MySQL - 添加标志列以识别首次付款

mysql - 在具有多个条件的 MySQL 中使用 group by 子句的正确方法是什么?

sql - SQL Server 中的嵌套窗口函数

c# - 从安装程序访问配置文件中的 'applicationSettings'(不是 'appSettings')部分

c# - Controller 是否应该从 web.config 中读取自定义应用程序设置?

具有多个路由参数的 ASP.NET Core Razor Pages 层次结构

asp.net - ASP.NET Rich UI-您使用什么?