例如,我们现在这样做的方式如下:(在 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/