• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
xwf2160
博客园    首页    新随笔    联系   管理    订阅  订阅

MOSS2007中实现表单验证

MOSS2007中实现表单验证

转自阿喜的Spaces
Microsoft Office SharePoint Server 2007 Forms Authentication

本文将演示如何在MOSS2007中实现表单验证.

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

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

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

clip_image002

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

clip_image004

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

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

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

clip_image006

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

在<configuration>节点内添加<connectionStrings>节点:

<connectionStrings>

<remove name="AspNetSqlProvider" />

<add name="AspNetSqlProvider"

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

</connectionStrings>

接着指定membership和role的提供程序,在<system.web>节点内添加<membership>节点和<roleManager>节点:

<!--Membership Provider-->

<membership defaultProvider="AspNetSqlMembershipProvider">

<providers>

<remove name="AspNetSqlMembershipProvider" />

<add connectionStringName="AspNetSqlProvider"

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" />

</providers>

</membership>

<!--Role Provider-->

<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">

<providers>

<remove name="AspNetSqlRoleProvider" />

<add connectionStringName="AspNetSqlProvider"

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" />

</providers>

</roleManager>

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

clip_image008

点击安全:

clip_image010

点击选择身份验证类型:

clip_image012

选择通过Internet,点击完成.

创建用户

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

clip_image014

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

clip_image016

clip_image018

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

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

clip_image020

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

clip_image022

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

clip_image024

创建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文件, 添加连接字符串,membership和role提供程序并保存.

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

clip_image028

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

配置SharePoint 管理中心

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

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

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

clip_image030

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

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

· 验证类型:表单

· 启用匿名访问:是

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

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

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

clip_image032

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

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

l 用户名:blueheart

l 授予权限:访问者

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

clip_image034

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

clip_image036

启用匿名访问

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

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

clip_image038

区域选择Internet > 下一步:

l 用户:windie

l 权限:完全控制

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

clip_image040

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

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

clip_image042

配置个别网站的权限

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

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

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

clip_image044

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

clip_image046

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

clip_image048

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

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

clip_image050

单独设置权限之前

clip_image052

posted @ 2010-02-01 12:21  xwf2160  阅读(747)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3