ASP.NET 例程完全代码版(7)——2.0中实现自配置的成员角色管理库
2006-05-12 10:01
726 查看
在ASP.NET 2.0 中,为我们提供了很好的成员即角色管理机制,可以方便地实现用户的注册及角色分配,对于基本的成员访问和角色控制进行了封装实现,但是,默认的情况下,这个用于提供成员即角色管理的数据库 aspnetdb 是要存储在 SQL Server 2005 的 Express 版本中的,下面通过建立个人站点的解决方案来讲述如何通过配置工具,实现 VS 2005 与 SQL Server 2000 的整合开发。
首先,安装好 VS 2005 后,如果 File-->New-->Web Site-->Personal Web Site Starter Kit 然后直接 RUN 的话,肯定会出现错误,提示 An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) 。但是,VS 给我们提供了很方便的使用工具,可以在命令行下使用 aspnet_regsql.exe 来指定默认使用的数据库服务器。它会为我们自动在配置的数据库服务器下生成 aspnetdb 这个用来管理成员即角色的库,这个工具可以在命令行下使用,也提供了 UI ,可以方便配置应用程序使用的数据库。aspnet_regsql
在使用这个 Starter Kits 的时候,可以把 Personal 的库通过它提供的脚本,存储在 SQL Server 2000 中,而不用使用 AttachDBFilename 的方式。具体可以通过 web.config 来配置,如下:
<connectionStrings>
<add name="Personal" connectionString="Data Source=yourServer;Integrated Security=True;Initial Catalog=Personal" />
<add name="SqlServices" connectionString="Data Source=yourServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
<remove name="LocalSqlServer"/>
</connectionStrings>
默认情况下,使用的连接是 machine.config 中定义的 LocalSqlServer ,你可以 remove 掉,同时,也不使用默认的 Membership & roles 的 Provider,也需要将 machine.config 中的默认 Provider 去掉。因为在其中,有如下的配置:
<roleManager>
<providers>
<add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
因为我们已经 remove 掉了默认的 LocalSqlServer 连接字符串,如果不 remove 掉 AspNetSqlRoleProvider 的话,会提示 The connection name 'LocalSqlServer' was not found in the applications configuration or the connection string is empty.
具体的使用自定制的方式可以如下设置:
<system.web>
<roleManager enabled="true" defaultProvider ="AspNetRoleProvider">
<providers>
<remove name="AspNetSqlRoleProvider" />
<add name="AspNetRoleProvider" connectionStringName="SqlServices"
type="System.Web.Security.SqlRoleProvider,System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
applicationName="/" />
</providers>
</roleManager>
<membership defaultProvider="AspNetMembershipProvider" userIsOnlineTimeWindow="20">
<providers>
<remove name="AspNetSqlMembershipProvider" />
<add name="AspNetMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
passwordFormat="Hashed"
applicationName="/" />
</providers>
</membership>
</system.web>
经过如此一番配置,你就可以使用 VS 2005 & SQL Server 2000 来实现成员访问和角色管理的开发了。呵呵,希望对刚介入 2.0 开发的朋友有所帮助。
首先,安装好 VS 2005 后,如果 File-->New-->Web Site-->Personal Web Site Starter Kit 然后直接 RUN 的话,肯定会出现错误,提示 An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) 。但是,VS 给我们提供了很方便的使用工具,可以在命令行下使用 aspnet_regsql.exe 来指定默认使用的数据库服务器。它会为我们自动在配置的数据库服务器下生成 aspnetdb 这个用来管理成员即角色的库,这个工具可以在命令行下使用,也提供了 UI ,可以方便配置应用程序使用的数据库。aspnet_regsql
在使用这个 Starter Kits 的时候,可以把 Personal 的库通过它提供的脚本,存储在 SQL Server 2000 中,而不用使用 AttachDBFilename 的方式。具体可以通过 web.config 来配置,如下:
<connectionStrings>
<add name="Personal" connectionString="Data Source=yourServer;Integrated Security=True;Initial Catalog=Personal" />
<add name="SqlServices" connectionString="Data Source=yourServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
<remove name="LocalSqlServer"/>
</connectionStrings>
默认情况下,使用的连接是 machine.config 中定义的 LocalSqlServer ,你可以 remove 掉,同时,也不使用默认的 Membership & roles 的 Provider,也需要将 machine.config 中的默认 Provider 去掉。因为在其中,有如下的配置:
<roleManager>
<providers>
<add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
因为我们已经 remove 掉了默认的 LocalSqlServer 连接字符串,如果不 remove 掉 AspNetSqlRoleProvider 的话,会提示 The connection name 'LocalSqlServer' was not found in the applications configuration or the connection string is empty.
具体的使用自定制的方式可以如下设置:
<system.web>
<roleManager enabled="true" defaultProvider ="AspNetRoleProvider">
<providers>
<remove name="AspNetSqlRoleProvider" />
<add name="AspNetRoleProvider" connectionStringName="SqlServices"
type="System.Web.Security.SqlRoleProvider,System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
applicationName="/" />
</providers>
</roleManager>
<membership defaultProvider="AspNetMembershipProvider" userIsOnlineTimeWindow="20">
<providers>
<remove name="AspNetSqlMembershipProvider" />
<add name="AspNetMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
passwordFormat="Hashed"
applicationName="/" />
</providers>
</membership>
</system.web>
经过如此一番配置,你就可以使用 VS 2005 & SQL Server 2000 来实现成员访问和角色管理的开发了。呵呵,希望对刚介入 2.0 开发的朋友有所帮助。
相关文章推荐
- ASP.NET 例程完全代码版(7)——2.0中实现自配置的成员角色管理库
- 使用 IIS 进行 Microsoft ASP.NET 2.0 成员/角色管理,第 1 部分:安全和配置概述
- ASP.NET 例程完全代码版(5)——通过web.config配置数据库连接池
- 使用 IIS 进行 Microsoft ASP.NET 2.0 成员/角色管理,第 1 部分:安全和配置概述
- 使用 IIS 进行 ASP.NET 2.0 成员/角色管理(2):实现
- asp.net 2.0 membership与成员角色配置
- 使用 IIS 进行 Microsoft ASP.NET 2.0 成员/角色管理,第 2 部分:实现
- 使用 IIS 进行 Microsoft ASP.NET 2.0 成员/角色管理,第 2 部分:实现
- Asp.net 2.0 自定义控件开发[实现自动计算功能(AutoComputeControl)][示例代码下载]
- Asp.net 2.0 自定义控件开发[实现自动计算功能(AutoComputeControl)][示例代码下载]
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- ASP.NET 2.0 HttpHandler实现生成图片验证码(示例代码下载)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载)
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载)
- ASP.NET 2.0角色及成员管理
- 在ASP.Net 2.0中实现多语言界面的方法及多语言区域代码对应表
- ASP.NET 2.0 中一种新的方法实现对配置文件的加密
- Asp.net 2.0 实现自定义Email格式有效性验证(示例代码下载)