Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在数据库中管理多个站点管理员和用户?_Asp.net_Sql Server_Database Design - Fatal编程技术网

Asp.net 如何在数据库中管理多个站点管理员和用户?

Asp.net 如何在数据库中管理多个站点管理员和用户?,asp.net,sql-server,database-design,Asp.net,Sql Server,Database Design,我必须为拥有数百万用户的应用程序设计一个数据库。现在该网站将有多个管理员,如HRadmin、SuperAdmin、SalesAdmin。我只能有一个管理员角色 我担心的是,如果我在一个表中处理所有与用户相关的数据,这意味着所有用户,无论是管理员还是用户,凭据都将存储在一个表中,搜索唯一用户名和其他内容的速度可能会非常慢 人们建议,为管理员和用户设置不同的页面,在querystring中添加关键字,并在代码中提取关键字以查找实际的管理员角色 我应该如何在数据库中实现这一点,以便前端不会变得笨重。我

我必须为拥有数百万用户的应用程序设计一个数据库。现在该网站将有多个管理员,如HRadmin、SuperAdmin、SalesAdmin。我只能有一个管理员角色

我担心的是,如果我在一个表中处理所有与用户相关的数据,这意味着所有用户,无论是管理员还是用户,凭据都将存储在一个表中,搜索唯一用户名和其他内容的速度可能会非常慢

人们建议,为管理员和用户设置不同的页面,在querystring中添加关键字,并在代码中提取关键字以查找实际的管理员角色


我应该如何在数据库中实现这一点,以便前端不会变得笨重。我使用的是asp.net2.0和sql server 2005。

既然您使用的是asp.NET和sql server 2005,请看一下如何使用。有一个工具可以为您构建数据库表,包括对多个用户、角色和概要文件字段的支持


下面是关于ASP.NET成员资格的详细介绍:。

既然您使用的是ASP.NET和SQL Server 2005,那么就看看如何使用。有一个工具可以为您构建数据库表,包括对多个用户、角色和概要文件字段的支持


下面是ASP.NET成员资格的详细介绍:。

我同意,请使用ASP.NET成员资格提供商。当用户登录时,您应该只需要进行一次查找-然后您可以使用创建一个保存身份验证和角色详细信息的安全cookie。只要有一个索引良好的表,即使有数百万行,单次查找也应该很快。

我同意,使用ASP.NET成员资格提供程序。当用户登录时,您应该只需要进行一次查找-然后您可以使用创建一个保存身份验证和角色详细信息的安全cookie。只要您有一个索引良好的表,即使您有数百万行,单次查找也应该很快。

如果您愿意成为ASP.NET成员,请阅读


拥有数以百万计的用户需要一些优化,例如,如果您选择ASP.NET会员资格,我们将使用文章中描述的CacheRolesInCookie,请阅读


拥有数百万用户需要一些优化,例如,我们使用CacheRolesInCookie,如文章所述

相信我,您只需要一个用户表,特别是当您要检查唯一的用户名时。适当的索引应该使它正常工作。您可能还需要一个定义每个人的角色(他们可能有多个角色)的相关表。

相信我,您只需要一个用户表,特别是在您要检查唯一用户名的情况下。适当的索引应该使它正常工作。您可能还需要一个定义每个人的角色(他们可能有多个角色)的相关表。

在查询字符串中放置关键字是一个非常糟糕的主意。如果我知道使用什么关键字来成为管理员,我可以伪造自己的管理员权限?如果用户已登录,您可以将其凭据放在会话或cookie中(我会预先设置会话,因为cookie可以在客户端更改),这可能会为您节省大量DB请求(据我所知,我不知道有任何系统会不断更新您的凭据,即使您在Active Directory上,Windows也会缓存这些凭据)

如果您担心在表中查找用户名会花费很长时间,您应该优化数据库表。将索引放在用户名上(或将其用作主键),搜索用户名时不会遇到性能问题(此外,在用户名上执行多次搜索时,SQL server会尝试自己对其进行优化)


另外,使用不同的页面似乎可以加快速度,但当您需要对代码进行更改时,您会遇到一个大问题,因为您必须在多个位置修复相同的内容。有时,可重用性和可维护性应该超过速度

将关键字放入查询字符串是一个非常糟糕的主意。如果我知道使用什么关键字来成为管理员,我可以伪造自己的管理员权限?如果用户已登录,您可以将其凭据放在会话或cookie中(我会预先设置会话,因为cookie可以在客户端更改),这可能会为您节省大量DB请求(据我所知,我不知道有任何系统会不断更新您的凭据,即使您在Active Directory上,Windows也会缓存这些凭据)

如果您担心在表中查找用户名会花费很长时间,您应该优化数据库表。将索引放在用户名上(或将其用作主键),搜索用户名时不会遇到性能问题(此外,在用户名上执行多次搜索时,SQL server会尝试自己对其进行优化)


另外,使用不同的页面似乎可以加快速度,但当您需要对代码进行更改时,您会遇到一个大问题,因为您必须在多个位置修复相同的内容。有时,可重用性和可维护性应该超过速度

我看了一下,但它不符合我的要求。它非常严格,我们没有时间编写自己的Membership提供程序。您不需要创建提供程序。该工具为您构建数据库、存储的进程和视图,您可以根据自己的喜好将其挂接。这是一个很好的工具,因为它需要构建用户管理系统的所有工作。ASP.NET SQL Server注册工具(Aspnet_regsql.exe)将创建SQL成员资格提供程序所需的数据库。我看了一下,但它不符合我的要求。它非常严格,我们没有时间编写自己的Membership提供程序。您不需要创建提供程序。该工具为您构建数据库、存储的进程和视图,您可以根据自己的喜好将其挂接。这是一个很好的工具,因为它需要构建用户管理系统的所有工作