asp.net成员资格 - sql身份验证

时间:2010-06-29 19:22:27

标签: asp.net sql asp.net-membership

我想知道在新网站中设置会员资格的“正确”方式。

当我有新项目时,我可以访问网站/ ASP.NET配置。在那里,我可以设置Forms身份验证并管理将使用此页面的所有用户。我可以在文件夹上制作角色和规则。所有这些信息都保存在表中,该表将本地保存在数据库App_Data / ASPNETDB.MDF中。我想要做的是所有这些信息将与主机服务器一起在网站上,但不在本地。

将我在本地创建的网站连接到中央的mssql服务器的最佳方法是什么。我希望能够转到asp.net配置并管理用户,但我希望将数据保存在mssql服务器上的表中,而不是aspnetdb.mdf文件中。

我已经使用aspnet_regsql.exe文件在mssql服务器上创建了asp.net成员资格表。

更新: 没关系,我找到了解决这个问题的方法。 只需添加 <remove name="LocalSqlServer"/><ConnectionStrings>然后我自己的连接字符串。现在它的工作......

1 个答案:

答案 0 :(得分:4)

Visual Studio SDK中有一个名为“aspnet_regsql”的行命令。它会打开一个窗口,您可以使用它在任何SQL Server数据库中设置ASP.NET成员资格,角色和配置文件支持。

对于大多数应用程序,您可能最终会编写自己的成员资格管理页面。它并不难,您需要的大多数控件都在Visual Studio的工具箱中。这是我在安全性演讲中给出的食谱:

将ASP.NET成员资格和角色添加到现有SQL Server数据库:

  1. 打开Visual Studio 2008命令窗口。

    (如果必须在管理员模式下运行SQL行命令,则需要 以管理员模式打开命令行,然后将路径设置为 包括Visual Studio SDK可执行文件。)

  2. 在该命令窗口中运行aspnet_regsql。

  3. 对于将使用数据库的SQL用户登录,请添加一个或多个 以下成员资格提供者角色:

    aspnet_Membership_FullAccess - 如果用户可以注册自己或其他人 aspnet_Membership_BasicAccess - 用户无法注册自己 aspnet_Membership_ReportingAccess - 用于会员统计

  4. 对于SQL用户登录,请添加以下一个或多个角色提供程序角色:

    aspnet_Roles_FullAccess - 创建和删除角色 aspnet_Roles_BasicAccess - 使用asp.net角色

  5. 使用SQL Server Management Studio配置初始应用程序和角色:

    exec aspnet_Applications_CreateApplication @ ApplicationName ='Northwind',@ ApplicationID =''

    exec aspnet_Roles_CreateRole @ ApplicationName ='Northwind',@ RoleName ='Employee'

    exec aspnet_Roles_CreateRole @ ApplicationName ='Northwind',@ RoleName ='Manager'

    exec aspnet_Roles_CreateRole @ ApplicationName ='Northwind',@ RoleName ='Master'

  6. 实施“新用户”页面,但不要使用表单授权将其锁定。 假设您已经存在用户记录,您可能希望实现自己的表单 在您的数据库中,并假设您想要添加角色作为“创建用户”的一部分 处理。无论如何,使用此页面为ASP.NET创建一组初始用户 会员资格;这种方式比尝试使用存储过程更容易。 请参阅示例代码,了解不使用ASP.NET的用户创建实现 LoginView控件。

    请注意,示例应用程序中的“添加用户”页面假定了许多内容 ASP.NET中的标准Login控件很难做到这一点。如果您正在创建用户 作为一种管理功能,你可能不是让用户自己添加 想要拥有多个角色,并且能够选择角色。更重要的是, 您可能已在数据库中建立了“用户”表,并且需要进行集成 “新用户”功能,可将记录添加到应用程序的用户表中。这是 用于创建自己的Login控件,收集其他数据和的原型 集成用户记录,ASP.NET成员资格记录和ASP.NET角色的创建 分配。所有这些都是在环境事务中完成的,因此它们要么成功 或作为一个单一的工作单位失败。

  7. 创建用户并将其添加到角色后,您可以设置表单身份验证 并锁定需要授权的页面。注意:

    一个。不要求对顶级目录进行身份验证。此级别的页面    应该是公开的。 湾在页面需要身份验证的每个子目录中添加web.config。    通常,设置身份验证级别将是这些中唯一的功能    web.config文件。