基于AD的Form表单身份验证

      默认情况,MOSS的身份验证是基于AD的,但是基于AD的用户身份验证较适合于企业的内部中使用,若要在外部网络环境下要访问MOSS网站那么基于AD身份验证的方式就不太适用了,因为要基于AD认证必须要开启些不必要的端口号,所以出于安全原因的考虑,大家就想到基于Form表单的身份验证并将用户的验证的身份信息存储于数据库中,这样就可以解决原来在基于AD认证时带来的不方便!但将MOSS改为Form表单身份验证的前提是需要用户自己创建用户信息,这样也挺麻烦的,有没有一种即可以像AD认证那样不用创建用户且还具有Form表单验证的功能呢?答案的是肯定。。。

 

基于MOSS身份验证除了默认的AD认证,基于Form的表单验证,其实还有一种是基于ADForm表单身份验证,下面就详细介绍下这种身份验证是如何进行的。。。。

 

配置基于ADForm身份验证所需的宿主Sharepoint网站集(如:http://tecpc:8001)是如何创建的相信大家应该都非常熟悉了,在这小弟就在唠叨了,哈哈。。。直接切入正题

 

一、配置Web应用程序的里“身份验证提供程序”

 

打开Sharepoint管理中心->应用程序管理->验证提供程序   页面并根据需要修改到相应的Web应用程序,如图1

点击“默认”,打开编辑验证的页面

1、修改“验证类型”栏处选择“表单”

2、“匿名访问”栏处,根据用户需要是否启动网站的匿名访问功能

3、在“成员身份验证提供程序”栏,输入成员身份验证提供程序名称:AspNetActiveDirectoryMembershipProvider 这个名称须与Web应用程序所对应的Web.Config里的配置一样即可

4、保存上述所做的配置

如图2

基于AD的Form表单身份验证_第1张图片 

在保存完上述所在的配置之后,返回到“验证提供程序”页面会发现原来的“默认”记录行里的成员身份提供程序名称栏处由原来的"Windows"变成了"AspNetActiveDirectoryMembershipProvider"Web应用程序完成上述这些步骤的配置后就完成了将其改为基于ADForm表单的身份,你可以试着登录该网站,会发现被导航到输入用户名与密码的登录页面,如图3

基于AD的Form表单身份验证_第2张图片 

你可试着输入用户名与密码,然后进行登录,会发现你已没有权限登录了就算换成administrator的账号来登录,也是报同样的错误没有权限登录,这是因为现在已将网站修改成了基于ADForm表单身份验证而不是原来集成身份验证了,之前配置的用户信息是基于Windows的。

 

下面还需要经过以下两个步骤的操作后即可解决上面所碰到的问题,请继续往下看吧。。。

 

1、修改Web应用程序(http://tecpc:8001)的Web.Config

打开Web应用程序在虚拟目录下对应的8001文件夹-->Web.Config

 

在Web.config文件中的<system.web>一节上面,添加如下配置节:

<connectionStrings>

    <add name="ADCustomService" connectionString="LDAP://moss"/>

</connectionStrings>

    其中"ADCustomService"是自定义的名称,将会被后面的配置节所用到。“moss”是所配置的AD的名称

 

然后,需要在“<system.web>”节里面添加如下配置节:

<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">

 <providers>

<add name="AspNetActiveDirectoryMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider,  System.Web, Version=2.0.0.0, Culture=neutral,   PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADCustomService" connectionProtection="Secure" applicationName="/_layouts/login.aspx"     connectionUsername="CONTOSO\wssadmin"connectionPassword="ilove"             attributeMapUsername="sAMAccountName"         minRequiredPasswordLength="7"             minRequiredNonalphanumericCharacters="1"             attributeMapEmail="mail"       requiresQuestionAndAnswer="false" />

 </providers>

</membership>

    注意: 

1)name属性的值不要写错,要和前面一篇设置提供程序时的名称相同。

2connectionStringName的值要和上一步ConnectionStrings节中设置的名称相同。

3)attributeMapUsernameattributeMapEmail的值都是AD中相应的属性名称。

4) connectionUsernameconnectionPassword的值是连接使用的账号与密码。

5) minRequirePasswordLengthminRequiredNonalphanumericCharacters都是组策略的设置,要根据实际的设置填写。

添加完成后,保存所做修改。

 

2、修改Sharepoint管理中心应用程序的Web.Config,及修改8001端口的Web应用程序的策略

 

Sharepoint管理中心应用程序的Web.Config的配置与上面的Web.Config配置的代码是一样,在这里我不就再贴出了,这里着重介绍下如何修改Web应用程序的策略以便添加用户权限。

 

打开Sharepoint管理中心->应用程序管理-->Web 应用程序策略   根据需要修改Web应用程序,如图4

基于AD的Form表单身份验证_第3张图片 

单击“添加用户”-->在选择区域处选择“默认”-->下一步-->在选择用户栏处选择相应的用户名,并在选择相应的权限-->完成,如图5

基于AD的Form表单身份验证_第4张图片 

此时,在“Web的应用程序策略”界面中,我们就可以看到默认区域添加了一个完全控制的管理账户。同时,通过账户名称前缀,可以看出该账户是由我们的Provider提供的,这时再次访问网站输入用户名与密码后即可登录网站中。

 

完成了这两步骤的配置后,就可以解决前面所碰到的登录时没有权限的问题了。

你可能感兴趣的:(form)