zoukankan      html  css  js  c++  java
  • 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文件, 添加连接字符串,membershiprole提供程序并保存.

    如果不知道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

  • 相关阅读:
    MAC OpenGL 环境搭建
    C++中调用OC代码
    XCode快捷键使用
    【iOS】史上最全的iOS持续集成教程 (下)
    【iOS】史上最全的iOS持续集成教程 (上)
    pod 指令无效
    iOS面试题总结(持续更新)
    数据结构与算法思维导图
    Swift编码规范总结
    同步异步执行问题
  • 原文地址:https://www.cnblogs.com/xwf2160/p/1660918.html
Copyright © 2011-2022 走看看