我有一个带有私有站点管理应用程序的 ASP.NET MVC 站点,该应用程序由 ASP.NET sql 支持的授权保护。我需要为公共站点添加一个登录名,以允许访问者注册一个帐户。
我在想我应该为公共站点创建完全独立的存储,而不是扩展现有的用户数据库并依靠角色将公共用户排除在后台之外。有什么理由不这样做吗?
我有一个带有私有站点管理应用程序的 ASP.NET MVC 站点,该应用程序由 ASP.NET sql 支持的授权保护。我需要为公共站点添加一个登录名,以允许访问者注册一个帐户。
我在想我应该为公共站点创建完全独立的存储,而不是扩展现有的用户数据库并依靠角色将公共用户排除在后台之外。有什么理由不这样做吗?
就在这里。您可以将私有数据库与公共数据库隔离开来。创建 2 个数据库用户帐户,确保他们只能访问他们需要的 1 个数据库。公共和私人应用程序将使用不同的帐户。然后锁定数据库帐户以确保它们仅具有 Web 应用程序运行所需的权限。(我不确定您使用的是什么数据库。如果您使用的是 ms-sql,请确保他们无权访问 xp_cmdshell,如果您在 mysql 下,请确保该帐户没有 FILE 权限。还有其他注意事项但这超出了这个问题的范围。)
如果在您的站点的公共部分发现 SQL 注入漏洞,那么他们将能够访问该数据库,而您的私有站点不会受到攻击的影响。
时间和潜在的金钱将是原因之一。否则,如果你有时间。根据需要,不确切知道手头的问题,它也可能增加很多复杂性......
HTH。
您是否会拥有一个具有多个角色的用户?您最终能否将同一个用户存储在多个数据库中?如果是这样,我会将您的用户保存在统一的数据库中。