ASP.NET Membership - SQL 身份验证

3

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

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

如何最好地将我在本地创建的网站连接到集中的mssql服务器?我希望能够访问asp.net配置并管理用户,但我希望数据保存在mssql服务器的表中,而不是aspnetdb.mdf文件中。

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

更新: 没关系,我找到了方法。 只需添加 <remove name="LocalSqlServer"/><ConnectionStrings> 中,然后加入自己的连接字符串。现在它正在运作中...


我正在尝试让网站在 SQL Server 托管处查找会员数据,而不是本地的 aspnetdb.mdf 文件。 此外,如果您使用网站/ASP 配置工具,它是否总是在本地站点上创建一个新的 aspnetdb.mdf 文件? - eski
1个回答

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控件创建用户的实现的示例代码,请参见样本代码。

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接