zoukankan      html  css  js  c++  java
  • Sharepoint 2007 表单验证 (一)

    郑重声明,如果您会了或者认为这就是垃圾的话,请哈哈大笑之后轻蔑的关闭此页。如果您认为有价值的,就默默的往下看吧。

    打小语文就不好,表达不好,尽量上图,可能这样对我来说更直观。

    Sharepoint下的几种验证。

    1. Windows Identity

    2. LDAP

    3. Active Directory

    4. Form Authentication

    这里面要说明的是LDAP下的验证,WSS 3.0是不支持LDAP验证的。因为它要读取GAC下的Microsoft.Office.Server.dll, 这个在WSS 3.0的GAC下是不存在的 (MOSS下的dll)。WSS 2.0的时候是可以通过直接部署 Microsoft.Office.Server到GAC下,然后使用LDAP的,貌似微软发现了这个问题,在WSS 3.0的时候就封死了这个方法。

    前三个验证就略过,基本上通过配置web.config就能连接MOSS.

    MOSS 2007或者WSS 2007下表单验证的例子很多,最普遍的就是用ASP.NET下定义好的Membership Provider来进行验证。我想分三部分进行介绍

    1. ASP.NET 默认Membership Provider, Role Provider 与Sharepoint 2007 整合

    2. 自定义Membership Provider 与Sharepoint的整合

    3. 自定义Sharepoint下的PeoplePicker

    首先我们先看第一个ASP.NET默认下的Membership Provider, Role Provider 与Sharepoint的整合.

    1. 运行aspnet_regsql

    clip_image001

    clip_image002

    clip_image003

    clip_image004

    clip_image005

    SQL配置完成。

    Database建立后,请给予适当的User Credential.我用的是moss_fba_user,密码是password

    新建一个ASP.NET Web Application.

    clip_image006

    打开web.config

    <connectionStrings>
    
    <add name="moss_fba" connectionString="Data Source=moss2007;Initial Catalog=MOSS_FBA;Integrated Security=SSPI;User ID=moss_fba_user;Password=password;"/>
    
    </connectionStrings>
    
    Membership Provider的Config 文件
    
    <membership defaultProvider="AspNetSqlProvider">
    
    <providers>
    
    <clear/>
    
    <add name="AspNetSqlProvider"
    
    type="System.Web.Security.SqlMembershipProvider"
    
    connectionStringName="moss_fba"
    
    enablePasswordRetrieval="true"
    
    enablePasswordReset="true"
    
    requiresQuestionAndAnswer="false"
    
    passwordFormat="Encrypted"
    
    requiresUniqueEmail="true"
    
    minRequiredNonalphanumericCharacters="0"
    
    applicationName="/ASP.NET.Membership" />
    
    </providers>
    
    </membership>
    
    

    这个Membership是一个没有提问回答,但是要求单一email地址的config.

    这里要注意的是,passwordFormat=”Encrypted”,它是需要machinekey的,所以打开你的WSS或者MOSS的站点的config,复制粘贴那里web.config的machinekey到我们ASP.NET的程序.

    比如我的C:\Inetpub\wwwroot\wss\VirtualDirectories\80下的web.config的key是

    <machineKey validationKey="0B3571E625D0ACA939BEA607380821F1170EC60F91A3EFA5" decryptionKey="82E1CF3C245329051E35DCD2C1CC2312D8796FCE779826B9" validation="SHA1" />

    把这行粘贴到你ASP.NET web Application下的web.config

    同时呢,我们启动Role Provider

    <roleManager enabled="true">
    
    <providers>
    
    <clear />
    
    <add name="AspNetSqlRoleProvider"
    
    connectionStringName="moss_fba"
    
    applicationName="/ASP.NET.Membership"
    
    type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    
    </providers>
    
    </roleManager>
    

    启动ASP.NET Configuration进行测试。

    clip_image008

    如果失败了,请自行调整你的配置直至测试成功。不成功的话请不要继续一下的内容。

    如果你测试成功了,请继续下面的内容。

    成功后,请建立2个Role,一个叫Administrators,一个叫Users,名字请根据个人爱好随便起。

    clip_image009

    然后建立两个User,一个是Admin,一个是user1

    clip_image011

    在这里,我们使用一个已经建立好的MOSS的网站,http://moss2007,默认端口是80

    打开Sharepoint 2007 Central Administration->Application Management->Application Security->Authentication Providers

    抱歉,没有中文的MOSS..

    clip_image013

    选中你要修改的Site,我的是默认的80端口

    clip_image015

    点击Default

    clip_image016

    请选择Enable Client Integration.

    下面打开

    C:\Inetpub\wwwroot\wss\VirtualDirectories\80的Web.config文件

    添加如下的内容

    <connectionStrings>
    
    <add name="moss_fba" connectionString="Data Source=moss2007;Initial Catalog=MOSS_FBA;Integrated Security=SSPI;User ID=moss_fba_user;Password=password;"/>
    
    </connectionStrings>
    
    <authentication mode="Forms">
    
    <forms loginUrl="/_layouts/login.aspx" />
    
    </authentication>
    
    <membership defaultProvider="AspNetSqlProvider">
    
    <providers>
    
    <clear/>
    
    <add name="AspNetSqlProvider"
    
    type="System.Web.Security.SqlMembershipProvider"
    
    connectionStringName="moss_fba"
    
    enablePasswordRetrieval="true"
    
    enablePasswordReset="true"
    
    requiresQuestionAndAnswer="false"
    
    passwordFormat="Encrypted"
    
    requiresUniqueEmail="true"
    
    minRequiredNonalphanumericCharacters="0"
    
    applicationName="/ASP.NET.Membership" />
    
    </providers>
    
    </membership>
    
    <roleManager enabled="true">
    
    <providers>
    
    <clear />
    
    <add name="AspNetSqlRoleProvider"
    
    connectionStringName="moss_fba"
    
    applicationName="/ASP.NET.Membership"
    
    type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    
    </providers>
    
    </roleManager>
    
    

    并修改

    <PeoplePickerWildcards>
    
    <clear />
    
    <add key="AspNetSqlProvider" value="%" />
    
    </PeoplePickerWildcards>
    

    这个key=”AspNetSqlProvider”是跟membership provider的名字AspNetSqlProvider一一对应的。

    然后再打开Central Admin的web.config,个人端口是不一样的,请选择自己Central Admin的端口。

    clip_image018

    同样添加上面和修改上面的内容,但是一定要Disable Role Provider,不然你会进不去Central AdminOperation Management 的页面。不要修改<authentication mode="Windows">这个项。

    <connectionStrings>
    
    <add name="moss_fba" connectionString="Data Source=moss2007;Initial Catalog=MOSS_FBA;Integrated Security=SSPI;User ID=moss_fba_user;Password=password;"/>
    
    </connectionStrings>
    
    <membership defaultProvider="AspNetSqlProvider">
    
    <providers>
    
    <clear/>
    
    <add name="AspNetSqlProvider"
    
    type="System.Web.Security.SqlMembershipProvider"
    
    connectionStringName="moss_fba"
    
    enablePasswordRetrieval="true"
    
    enablePasswordReset="true"
    
    requiresQuestionAndAnswer="false"
    
    passwordFormat="Encrypted"
    
    requiresUniqueEmail="true"
    
    minRequiredNonalphanumericCharacters="0"
    
    applicationName="/ASP.NET.Membership" />
    
    </providers>
    
    </membership>
    
    <roleManager enabled="false">
    
    <providers>
    
    <clear />
    
    <add name="AspNetSqlRoleProvider"
    
    connectionStringName="moss_fba"
    
    applicationName="/ASP.NET.Membership"
    
    type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    
    </providers>
    
    </roleManager>
    
    <PeoplePickerWildcards>
    
    <clear />
    
    <add key="AspNetSqlProvider" value="%" />
    
    </PeoplePickerWildcards>
    
    

    修改后,Application Management->Sharepoint Site Management->Site collection Administrators

    clip_image019

    选中你的Site,我的是http://moss2007:80,你会看到这个,主要的Site Admin那个选项提示你是错的,不要慌张,不要迷茫,你快成功了。

    clip_image021

    所搜Admin

    clip_image023

    点击OK,完成。

    clip_image025

    然后我们回到http://moss2007/

    clip_image026

    使用admin和密码登陆。O了。

    clip_image028

    再次郑重声明,如果您会了或者认为这就是垃圾的话,请哈哈大笑之后轻蔑的关闭此页。如果您认为有价值的,就默默的看吧

  • 相关阅读:
    odoo10 入门
    git 命令详细介绍
    odoo中Python实现小写金额转换为大写金额
    {DARK CTF } OSINT/Eye
    2020 12 18
    2020 12 17
    2020 12 16
    2020 12 15
    2020 11 14
    2020 11 13
  • 原文地址:https://www.cnblogs.com/ruijiang21/p/1813464.html
Copyright © 2011-2022 走看看