0

我知道这是一个奇怪的问题,基本上我们正在尝试使用 web.config 文件来限制对某些用户的访问。不幸的是,该站点没有使用角色,而是访问 sql 数据库以根据存储的值确定用户的角色。是否可以以某种方式提取 SQL 值以确定是否应授予用户访问权限,例如:

  <location path="Restrictedpage.aspx">
    <system.web>
      <authorization>
        <allow users="SQL Reference would go here, returning the usernames that fall under certain criteria, such as value admin = 1"/>
        <deny users="*"/>
      </authorization>
    </system.web>

我知道这是一个奇怪的问题,我对这一切都很陌生,但我真的可以使用一些帮助,如果有人有更好的方法,我也会很感激这方面的想法。

谢谢!

4

3 回答 3

3

不,web.config 用于声明性配置。话虽如此,仅仅因为数据库中没有角色,并不意味着您不能在应用程序中使用角色。例如,如果有人在数据库中,您可以在他们登录时IsAdmin = 1将他们置于角色中。Administrators然后,您可以轻松地使用<authorization>web.config 中的部分来仅允许Administrators角色成员访问该位置。

作为 web.config 的替代方案,您可以使用Page_Load()RestrictedPage.aspx 来查询数据库并检查用户是否是管理员。如果不是,则将用户重定向到其他地方。但是,如果您可以重新编译代码并且要经历所有这些麻烦,那么您最好使用基于角色的方法。

于 2013-06-10T16:20:23.153 回答
0

如果 web.config 文件被更改,IIS 会自动重新加载配置。我并不是说这是推荐的方法。但是...如果拒绝列表更新,您可以在应用程序中编写代码来修改 web.config 文件。只需确保您的应用程序有权修改 Web.config。

于 2013-06-10T16:26:40.840 回答
-1

您也可以考虑使用允许您保持当前数据库架构不变的成员资格提供程序http://msdn.microsoft.com/en-us/library/f1kyba5e(v=vs.100).aspx

创建会员提供者教程:http ://www.asp.net/web-forms/videos/how-do-i/how-do-i-create-a-custom-membership-provider

于 2013-06-10T16:20:05.653 回答