ASP.NET成员资格管理

创建ASP.NET 2.0 表单验证数据库
创建ASP.NET 2.0数据库

使用Microsoft .NET 2.0提供的工具aspnet_regsql.exe来创建一个名为AspNetDb数据库:

Visual Studio 2005命令提示中执行 asp_regsql –A all –E.

ASP.NET成员资格管理_第1张图片

在SQL Server 2005中查看刚才创建好的数据库.

ASP.NET成员资格管理_第2张图片

配置成员资格提供程序和角色提供程序

创建好数据库之后,需要在数据库中添加用户,最简单的方法是利用ASP.NET网站管理工具.

在Visual Studio 2005中创建一个ASP.NET站点.

ASP.NET成员资格管理_第3张图片

打开项目中的web.config文件,如果项目中没有web.config文件的话,可以手动添加一个移动Web配置文件.

节点内添加节点:

connectionString="server=SQL服务器名称; database=aspnetdb; Trusted_Connection=True" />

接着指定membership和role的提供程序,在节点内添加节点和节点:

passwordAttemptWindow="10"

enablePasswordRetrieval="false"

enablePasswordReset="true"

requiresQuestionAndAnswer="true"

applicationName="/"

requiresUniqueEmail="false"

passwordFormat="Hashed"

description="Stores and retrieves membership data from the Microsoft SQL Server database"

name="AspNetSqlMembershipProvider"

type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

applicationName="/"

description="Stores and retrieves roles data from the local Microsoft SQL Server database"

name="AspNetSqlRoleProvider"

type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

以上的步骤完成之后,选择Visual Studio 2005菜单中的网站 > ASP.NET配置:

ASP.NET成员资格管理_第4张图片

点击安全:

clip_image010

点击选择身份验证类型:

ASP.NET成员资格管理_第5张图片

选择通过Internet,点击完成.

创建用户

在上一步返回的页面中选择创建用户:

ASP.NET成员资格管理_第6张图片

填写用户信息后点击创建用户:

ASP.NET成员资格管理_第7张图片

ASP.NET成员资格管理_第8张图片

点击继续来创建另外一个用户Blueheart.

最后我们来确定一下web.config中的成员资格和角色提供程序是否正确,在ASP.NET网站管理工具中点击提供程序选项卡:

ASP.NET成员资格管理_第9张图片

点击为每项功能选择不同的提供程序(高级):

clip_image022

这张页面列出了我们在web.config中指定的提供程序,点击测试来确认是否能成功连接到数据库:

ASP.NET成员资格管理_第10张图片

创建Web应用程序和网站集
创建第一个Web应用程序

打开SharePoint管理中心网站 > 应用程序管理 > 创建或扩展Web应用程序 > 新建Web应用程序:

· 端口:8001

· 验证提供程序:NTLM

· 允许匿名访问:

下文中简称此Web应用程序为8001站点.

创建网站集

Web应用程序创建完成之后,点击页面中的创建网站集链接创建一个网站集:

l 模板选择: 发布门户

l 网站地址:/

clip_image026

创建第二个Web应用程序

打开SharePoint管理中心网站 > 应用程序管理 > 创建或扩展Web应用程序 > 扩展现有Web应用程序:

· 端口:8002

· 验证提供程序:NTLM

· 允许匿名访问:

· 负载平衡URL区域:Internet

下文中简称此Web应用程序为8002站点.

配置Web应用程序与ASP.NET 2.0表单验证数据库的连接
配置Web应用程序

打开8001站点的web.config文件, 添加连接字符串,membershiprole提供程序并保存.

如果不知道web.config文件的路径,可以打开Internet信息服务(IIS)管理器,找到8001站点,查看其属性,打开主目录选项卡,在本地路径处可以看到其存放位置:

ASP.NET成员资格管理_第11张图片

以同样的方法修改8002站点的web.config文件.

配置SharePoint 管理中心

在SharePoint管理中心的web.config文件中添加连接字符串,membership提供程序和role提供程序,按照之前的方法添加过后,还需要做一步必要的修改,将defaultProvider属性的值修改为AspNetWindowsTokenRoleProvider.

在Web应用程序中启用表单验证

打开SharePoint管理中心网站 > 应用程序管理 > 验证提供程序:

ASP.NET成员资格管理_第12张图片

确定当前Web应用程序是8001站点,点击Internet.

编辑验证页面做以下修改并保存:

· 验证类型:表单

· 启用匿名访问:

· 成员身份提供程序名称:AspNetSqlMembershipProvider

· 角色管理器提供名称:AspNetSqlRoleProveder

打开8002站点,显示登录页面:

clip_image032

下面向网站中添加用户来映射到自定义数据库中的用户.

打开8001站点 > 网站操作 > 网站设置 > 人员和组 > 新建:

l 用户名:blueheart

l 授予权限:访问者

下面来测试一下,在刚才打开的8002站点登录页面,输入blueheart和密码,登录成功:

ASP.NET成员资格管理_第13张图片

因为我们只授予blueheart访问者的权限,所以点击页面左侧任务列表中的启用匿名访问会被拒绝访问:

ASP.NET成员资格管理_第14张图片

启用匿名访问

打开SharePoint管理中心 > Web应用程序的策略:

确定当前Web应用程序是8001站点,点击添加用户:

ASP.NET成员资格管理_第15张图片

区域选择Internet > 下一步:

l 用户:windie

l 权限:完全控制

现在用windie登录8002站点,点击页面左侧任务列表中的启用匿名访问(另一种途径:网站操作 > 网站设置 > 修改所有网站设置 > 高级权限 > 设置 > 匿名访问):

ASP.NET成员资格管理_第16张图片

设置匿名用户可访问整个网站.

现在从8002站点注销,测试匿名访问是否正常工作:

ASP.NET成员资格管理_第17张图片

配置个别网站的权限

采用发布网站模板的网站集中默认包含一个新闻发布网站,新闻发布网站继承网站集的权限,也就是说启用匿名访问之后,匿名用户也可以访问这个新闻发布网站.

本节演示如何设置网站集下的个别网站的权限:

打开8001站点 > 网站操作 > 管理内容和结构:

ASP.NET成员资格管理_第18张图片

新闻发布节的菜单中选择高级权限,在权限:新闻发布页面中选择操作 > 编辑权限:

ASP.NET成员资格管理_第19张图片

在弹出来的对话框中点击确定:

ASP.NET成员资格管理_第20张图片

打开权限:新闻发布页面中新出现的设置菜单 > 匿名访问,选择匿名用户可访问的内容为.

现在匿名访问8002站点,发现新闻发布网站已经从网站集的导航栏中隐藏了:

clip_image050

单独设置权限之前

clip_image052

 

 

下面是我配置时的步骤.

 

在用ASP.NET web应用程序管理时,点击安全时,出现:

选定的数据存储区出现问题,原因可能是服务器名称或凭据无效,或者权限不足。也可能是未启用角色管理器功能造成的。请单击下面的按钮,以重定向到可以选择新数据存储区的页。

下面的消息可能会有助于诊断问题: 无法连接到 SQL Server 数据库。

我在点击下方的 选择数据储存区 按钮时出现:

在此页中可配置网站管理数据(如成员资格)的存储方式。您可以对站点的所有管理数据只使用一个提供程序,也可以为每种功能指定不同的提供程序。

应用程序当前被配置为使用提供程序: AspNetSqlProvider

为所有站点管理数据选择同一提供程序
为每项功能选择不同的提供程序(高级)

 

 

我在点击:为所有站点管理数据选择同一提供程序  时出现:

 

AspNetSqlProvider

我在点击 测试 时出现:

 

测试

 

 

未能建立数据库连接。
如果尚未创建 SQL Server 数据库,请退出网站管理工具,使用 aspnet_regsql 命令行实用工具创建和配置数据库,然后返回到此工具以设置提供程序。

 

我在用命令 aspnet_regsql 配置 数据库 我的步骤是:1.为应用程序配置 SQL Server 2.windows 身份验证 数据库默认 3设置摘要:服务器名:我的电脑名.数据库名称:aspnetdb 4.数据库已被创建和修改.

我在回到asp.net web y应用程序配置 还是出现:

未能建立数据库连接。
如果尚未创建 SQL Server 数据库,请退出网站管理工具,使用 aspnet_regsql 命令行实用工具创建和配置数据库,然后返回到此工具以设置提供程序。

 

 

 

 

 

解决办法:

 

问题都是由于没有创建asp.net成员资格数据库所引起的,请按照下面的步骤来操作,就可以解决以上所有的问题。


1、打开VS的命令提示,输入aspnet_regsql,用默认的数据库(aspnetdb)。 
2、打开VS,依次:工具-->选项-->数据库工具-->数据连接-->SQL Server实例名称(默认为空),改为你的服务器名称。 
3、还是VS,工具-->连接到数据库-->服务器名(选择刚才的服务器),可以按你要求选择Windows或SQL Server身份验证,然后数据库选择刚才的aspnetdb。测试OK后,在高级里复制出语句Data Source=Server;Initial Catalog=aspnetdb;User ID=sa 
4、打开IIS:默认网站-->属性-->ASP.NET-->编辑全局配置-->常规-->连接字符串管理器LocalSqlServer的连接字符串改为Data Source=Server;Initial Catalog=aspnetdb;User ID=sa;Password=sa (后面的sa用你的密码替换)。 
5、还是在IIS:默认网站-->属性-->ASP.NET-->编辑全局配置-->身份验证-->选定"启用角色管理"。

你可能感兴趣的:(ASP.NET成员资格管理)