Ho将管理员用户存储在Asp.Net应用程序,并以 www.example.com 成员资格提供程序

k97glaaz  于 2023-05-02  发布在  .NET
关注(0)|答案(1)|浏览(130)

我正在做一个ASP。Net应用程序,我使用ASP。用于身份验证的网络成员身份提供程序。目前,我在网络上存储管理员用户。配置文件作为键值对,并在mywww. example中获取 www.example.com 应用程序来检查用户是否是管理员或没有,然后显示他们的网页的基础上。
但是网络。当客户安装新版本的应用程序时,配置值会重置,并且他们必须再次手动添加用户。
有没有什么方法可以存储管理员用户的详细信息以外的网站。配置?
先谢谢你了!
我想存储在数据库中的管理员用户,但因为我们使用的是 www.example.com 会员提供商我们不能这样做。

c8ib6hqw

c8ib6hqw1#

数据库中的其他用户不都是吗?
事实上,您使用的成员资格提供程序非常意味着您可以将管理员用户存储在数据库中。事实上,管理员用户并不是突然成为管理员用户,直到您为该用户添加了一个“角色”。因此,您不必假设数据库中的用户是“admin”,而是在roles表中添加一个名为admin的角色。
所以,你会有这样的东西:

所以,然后这个:

SELECT * from Web_Roles
ID角色名称说明
1门户网站允许使用Portal
PortalMaster是给定公司的门户主机
网站管理站点管理员
承包商承包商-允许多个公司使用
工作人员是工作人员

因此,现在只需确保用户具有名为“SiteAdmin”的角色。
现在,您可以保护任何页面,并且只有role = admin的用户才能使用该页面。(和奖励积分是零码是必需的!!!!).
我的意思是,你当然可以在测试角色成员身份的代码中,像这样说:
所以说:

If Roles.IsUserInRole("SiteAdmin") then

      ' do whatever based on role = siteAdmin

  End If

所以,我不明白你怎么或为什么会建议你有一些“管理”存储在一个文本文件中,甚至在web配置。这不符合安全设置。如果您使用给定的角色保护网页,那么您甚至不需要代码来检查此类成员资格。
所以,假设我们创建一个名为SiteAdmin的文件夹。在该文件夹中,我们将放置/crate站点管理员用户的所有网页。
该文件夹中的Web配置将如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>

    <authorization>
            <allow roles="SiteAdmin" />
        <deny users="*" />
        </authorization>
      <httpRuntime requestValidationMode="2.0" />

</system.web>
</configuration>

因此,现在只有SiteAdmin角色中的用户可以使用该页面。
有时,我们可能会使用代码后面和上面的“角色”检查,隐藏或显示的东西,但如果你真的使用会员提供程序,然后简单地添加一个用户到“用户”表,并给予该用户在“siteAdmin”或任何你想叫它的成员资格。
如果您将用户存储在其他地方?那么如何保护应用程序中的“管理”页面呢?我想你可以在后台编写自定义代码,但这种安全性的全部意义在于你让IIS做所有这些事情,并根据它们所属的角色简单地保护每个页面。如果你现在不这样做,那么我就看不到你是如何进行实际的安全设置的?
所以,让一些用户说网络是没有意义的。配置文件,甚至是文本文件,因为这意味着用户将不会使用您为网站设置的安全系统。
其他用户现在存储在哪里?

相关问题