如何在 asp.net c# 中处理数据库用户

本文关键字:处理 数据库 用户 net asp | 更新日期: 2023-09-27 18:14:41

我正在 asp.net 做一个网站。在我的应用程序中,我将用户分为两类。一个是普通用户,另一个是管理员用户。管理员用户可能是一个或最多两个用户。我决定为管理员用户而不是 SQL 服务器中的表用户创建单独的两个数据库用户。所以我有三个数据库用户,两个用于管理员,一个用于普通用户

案例1:场景是,如果普通用户想要登录。系统将连接到 SQL SERVER 中的普通数据库用户,并将在用户表中查找凭据。如果找到用户,则会话将生成,普通用户将重定向到欢迎页面。

案例2:对于管理员用户,我有直接数据库用户。我没有在用户表中存储和查找管理员用户。管理员用户可以是动态的。我不想将数据库用户保存在 web.config 文件中的连接字符串中以供管理员使用。连接始终是运行时,但问题是如何处理数据库用户凭据,因为我不想将数据库用户凭据存储在 cookie 和会话中。

假设管理员 usr 1 通过登录页面登录。我的系统将检查数据库用户是否存在于SQL SERVER中。如果存在系统将重定向到欢迎页面,我希望我的整个应用程序记住管理员 usr 1 已登录。

如何在 asp.net 中处理这种情况。

如何在 asp.net c# 中处理数据库用户

我会考虑实现 ASP.NET Identity,而不是推出自己的安全实现。使用久经考验的方法要好得多,而且最近刚刚在项目中实现了这一点,如果您通读网络上的一些教程,这是相当简单的。

所有用户都应通过标准登录页面进行身份验证,无论其权限如何。通过身份验证后,您应该通过其Roles控制他们对应用程序的访问,您可以根据用户是"普通"用户还是"管理员"用户来创建和分配。

您提到管理员用户具有连接到数据库的不同SQL帐户,我质疑这是否必要,因为您应该能够通过应用于登录到 ASP.NET 应用程序的每个用户的安全性来控制每个用户可以执行的操作。

我建议不要为您的角色使用不同的数据库,因为它可能会弄乱业务逻辑。而是创建一个带有用户表的数据库,然后创建一个通过 FK 连接的角色表。