SharePoint 2010 配置基于SQL的表单身份验证

转发自:http://www.cyqdata.com/cnblogs/article-detail-5601

转发自:http://www.cnblogs.com/janet/archive/2013/07/18/3199234.html

系统环境: win2008r2+ sql2008r2 +Visual Studio2010+sharepoint 2010

A.如果已经建立了web application  例如名字为: http://luoku.cn/

需要进入SharePoint 2010 Management Shell,执行下列命令:

$w = Get-SPWebApplication "http://luoku.cn/"
$w.UseClaimsAuthentication = 1
$w.Update()
$w.ProvisionGlobally()

然后  在SharePoint中打开管理中心-应用程序管理-管理Web 应用程序,选择上方菜单上的身份验证提供程序 启用基于窗体的身份验证(FBA)

B.如果是新建web application,那么在新建时直接选择启用基于窗体的身份验证(FBA) 如下所示

一、配置ASP.NET应用程序服务信息的SQL Server数据库
1. 打开命令提示符。在运行中输入“cmd”,打开Windows的命令提示符。
2. 进入到.Net Framework的安装目录。输入“cd c:/windows/Microsoft .NET/Framework/v2.0.50727”。
3. 输入命令aspnet_regsql。该命令弹出“ASP.NET SQL Server 安装向导”,如下图 1所示。

:或者在开始菜单进入 Visual Studio 命令提示(2010) 直接输入aspnet_regsql 回车后效果一样

图 1

4. 在图 1中点击“下一步”按钮。向导进入“选择安装选项”页,如下图 2所示。

图 2

5. 在图 2中,选择“为应用程序服务配置SQL Server”,点击“下一步”。向导进入“选择服务器和数据库”页,如下图 3所示。

图 3

6. 在图 3中,输入“服务器”中输入数据库服务器的名称,选择“Windows身份验证”,在数据库中,选择“<默认>”,或者输入“aspnetdb”。点击“下一步”,进入“请确认您的设置”页。如下图 4所示。

图 4

7. 在图 4中,确认向导显示的内容和自己输入的内容是否一致,如果不一致,请返回上一步做相应调整。没问题请点“下一步”,向导将创建或修改aspnetdb数据库。顺利完成后,向导将显示“数据库已被创建或修改”,如下图 5所示。如果这一步报错,多半是因为数据库链接或者数据库权限不足导致。

图 5

8. 当向导出现图 5页时,说明“配置ASP.NET应用程序服务信息的SQL Server数据库”已经顺利完成。

二、创建SharePoint应用程序
1. 打开SharePoint 2010管理中心,如下图 6所示。

图 6

2. 点击“管理Web应用程序”链接,进入“Web应用程序管理”页面,在该页面中,点击功能区中的“新建”按钮,页面弹出“新建Web应用程序”对话框。如下图 7所示。

图 7

3. 在“验证”中,务必选择“基于声明的身份验证”,因为只有基于声明的身份验证才支持ASP.NET 表单验证方式。
4. 在IIS网站中,选择“新建IIS网站”,名称栏保持系统默认即可。端口中默认为80。用80端口的好处是在输入网站URL时不需要再输入端口号,因为HTTP协议默认端口号就是80。路径可以保持默认。设置结果如上图 7所示。

图 8

5. 在“安全性配置”中,默认即可。如上图 8所示。

图 9

6. 在“声明身份验证类型”中,如果采用混合身份验证,即既启用Windows验证,又启用表单验证,则可以保持“启用Windows验证”勾选。
7. 选中“启用基于窗体的身份验证(FBA)”,在“ASP.NET成员身份提供程序名称”输入“FBAMembershipProvider”;在“ASP.NET 角色管理器名称”输入“FBARoleProvider”。这两个提供程序名称需要和后面修改Web.config文件的成员身份验证提供程序名称相同。如上图 9所示。

图 10

8. 在“共用URL”中,保持默认即可,如上图 10所示。
9. 在“应用程序池”中,选择“新建应用程序池”,在“应用程序池名称”中输入“SharePoint - 80”。建议选择“可配置帐户”,应用程序池进程将在此帐户下运行。如上图 10所示。

图 11

10. 在“数据库名称和验证”中,输入“数据库服务器”名称,和“数据库名称”,建议数据库名称加方便区分其他数据库的前缀,比如“SharePoint_”,这样,您在安装多个SharePoint服务器共用同一数据库服务器时,方便区分数据库用途。如上图 11所示。
11. “故障转移服务器”和“搜索服务器”可暂时不配置。

图 12

12. 在“服务应用程序连接”中,选择默认即可。如上图 12所示。
13. 在“客户体验改善计划”中,根据自己喜好选择即可。
14. 建议再次检查一遍该对话框中所有设置内容,然后点击“确认”。SharePoint会自动创建Web应用程序,创建完毕后,会显示如下图 13所示对话框。

图 13

15. 建议先不要着急创建网站集,等配置好Web.config后再创建网站集。

三、将SharePoint 2010管理中心站点配置为使用SQL Membership提供程序

SharePoint站点默认的都是采用基于AD的身份验证,或许在这里你要问为什么要将SharePoint管理中心配置为表单验证,一般情况下当我们要访问管理中心时并不需要使用表单验证的登录方式啊。确实如此,不需要使用表单验证的方式登录管理中心,但是假如我们需要将某些存储在数据库中的用户设为网站集管理员或其它这一类的操作时,将管理中心配置为使用SQL Membership提供程序就是必不可少的了。

打开IIS管理器,选择“SharePoint Central Administration v4”,此时可以看到在中间的主页上有很多的选项,在这里我们要使用的则是“连接字符串”与“提供程序”。

图14

首先打开“连接字符串”,在画面右边的操作菜单中点击“添加”以创建一个新的用于连接到我们在上一步中新建的用于存储用户凭据的数据库的连接字符串,并将其命名为FBADB。

图15

接着返回SharePoint Central Administration v4 主页,打开提供程序页,在此我们将为管理中心站点添加角色提供程序与用户提供程序。在“功能”下拉框中选择“.NET角色然后点击操作面板内的“添加”新建一个角色提供程序,将其类型设为“SqlRoleProvider”,然后将“ConnectionStringName”这一项设置为上一步中创建的那个连接字符串的名称。

图16

最后还需设置成员身份提供程序,还是在“功能“下拉框中,选择“.NET用户,然后添加一个用户提供程序,其类型为“SqlMembershipProvider”,并且同样将连接字符串设置为我们刚刚新建的那条。

图17

现在管理中心的有关配置已经完成了,我们可以打开管理中心的web.config文件来检查下所修改的内容。修改后的web.config中将多出以下内容。

<roleManager>
  <providers>
            <add name="FBARoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web,

Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/" connectionStringName="FBADB" />
  </providers>
</roleManager>
<membership>
  <providers>
            <add name="FBAMembershipProvider" type="System.Web.Security.SqlMembershipProvider,

System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/"

connectionStringName="FBADB" enablePasswordReset="true" enablePasswordRetrieval="false" passwordFormat="Clear"

requiresQuestionAndAnswer="false" requiresUniqueEmail="false" />
  </providers>
</membership>

Security Store Service配置为使用SQL Membership提供程序

还是在IIS管理器中,在左侧的连接面板中选择“SharePoint Web Services”应用程序下的“SecurityTokenServiceAppliaation”,接下来的操作过程与刚刚配置管理中心站点的过程完全相同,这里就不再重复了。

图18

配置完成后可在其web.config文件中看到新加入了如下内容。

<system.web>
    <roleManager>
        <providers>
            <add name="FBARoleProvider" type="System.Web.Security.SqlRoleProvider,

System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/" connectionStringName="FBADB" />
        </providers>
    </roleManager>
    <membership>
        <providers>
            <add name="FBAMembershipProvider" type="System.Web.Security.SqlMembershipProvider,

System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/"

connectionStringName="FBADB" enablePasswordReset="true" enablePasswordRetrieval="false" passwordFormat="Clear"

requiresQuestionAndAnswer="false" requiresUniqueEmail="false" />
        </providers>
    </membership>
</system.web>

四、登录 (需要在IIS中创建Form用户)
1. 经过上面三个步骤的设置,您现在可以创建网站集了,凡是在新建的Web应用程序下面的网站,均支持表单验证。
2. 在打开网站时,会显示登录页面,如下图 17所示,在下拉框中可以选择Windows验证或表单验证。

图 19

3. 当选择表单验证时,会显示如下图 18所示,输入用户名、密码,点击登录,即可登陆到SharePoint。如果需要使用客户端工具,比如Word、Excel需要访问网站内容时,在登录时需要选中“自动登录”。

图 20

4.为Web应用程序配置SQL Membership提供程序

在上一步中的web应用程序创建好后,我们还要为其配置SQL Membership提供程序,就像对管理中心和Security Store Service所做的那样,不过略微有些不同。

首先还是要创建连接字符串,添加角色提供程序与用户提供程序,这三步与刚才没什么不同。其实到了这里已经可以通过表单认证的方式访问我们刚刚所创建的那个网站集了,不过此时我们的用户数据库中还没有数据,所以即使表单认证已经可以使用了,我们却还是无法登录。创建用户的方法有很多,可以通过一些开源的小工具创建,也可以自己写一个Web应用程序来完成新用户的注册,在本篇博客中我们则将使用IIS管理器来完成新用户的创建。

图21

首先在Web应用程序主页上选择“.NET角色”,点击右侧的“设置默认提供程序”,将默认的提供程序改为我们刚刚创建的FBARoleProvider。此时在我们的数据库中可能还没有任何角色,点击“操作”面板下的“添加”即可新建一个角色。

图22

接着回到主页,选择“.NET用户”,同样的将默认提供程序设置为FBAMembershipProvider,随后我们就可以在IIS管理器中创建用户了。

图23

在进入“.NET角色”和“.NET用户”界面时可能会弹出下图所示的警告信息,该信息忽略即可,并不影响我们的正常使用。

图24

还有一个需要注意的问题,当我们创建好角色和用户后,必须将“.NET角色”和“.NET用户”的默认提供程序改回去,否则在登录网站时会出现下面这个错误。

图25

默认的“.NET角色”提供程序名称为“c”,“.NET用户”的默认提供程序为“i”,改回来后让我们再来看看。

5. 登录系统后,看到如下图 19所示网站主页。在页面的右上角会显示当前登录用户。如要切换当前用户,可以点击用户名,弹出菜单中选择“以其他用户身份登录”,页面会回到登录页面。

图26

时间: 2024-10-19 02:36:08

SharePoint 2010 配置基于SQL的表单身份验证的相关文章

定制Asp.NET 5 MVC内建身份验证机制 - 基于自建SQL Server用户/角色数据表的表单身份验证

背景 在需要进行表单认证的Asp.NET 5 MVC项目被创建后,往往需要根据项目的实际需求做一系列的工作对MVC 5内建的身份验证机制(Asp.NET Identity)进行扩展和定制: Asp.NET内建的身份验证机制会使用Local DB(本地数据库)读写用户相关的信息,而在数据库驱动的项目中,管理业务信息的数据库通常是特定的数据库环境,比如远程SQL Server数据库实例或Access数据库等等,业务数据库中保存着一系列针对业务需求的数据表,因此需要定制MVC 5内建身份验证,使其操作

SharePoint 2010 自定义基于SQL表单身份验证的登录页面

当为SharePoint 2010 WebApplication配置了以混合模式(FBA Authentication和Windows Authentication)登陆后,我们当然可以自定义登陆页面(Sign in Page). 一.登陆SharePoint 2010 Central Administratio后,找到对应的WebApplication,指定其Sign in Page Url即可,如下所示: 二.创建自定义登录项目 首先,为了创建自定义的登陆页,我选择了Application

php表单身份验证

1. index.php <form method="post" action="dbtest.php">            姓名:            <input type="text" name="name">            <br>            <br>            密码:            <input type="

ASP.NET在IE9,IE10,IE11中Form表单身份验证失效问题解决方法

已经研究出解决方案. IE9:在web.config中的forms中增加name=".xCookie"属性即可. IE10或IE11: 在web.config中的forms中增加cookieless="UseCookies"属性即可. 这个是IE9,IE10,和IE11浏览器的bug问题,相信很多用FormsAuthenticationTicket来做验证的都会碰到这个问题..... 我自己的最后的是 <authentication mode="Fo

SharePoint 2013 配置基于表单的身份认证

前 言 这里简单介绍一下为SharePoint 2013 配置基于表单的身份认证,简单的说,就是用Net提供的工具创建数据库,然后配置SharePoint 管理中心.STS服务.Web应用程序的三处web.config即可.下面,让我们以图文的方式了解创建的具体过程吧. 使用微软提供的工具,创建数据库,找到Framework64下的aspnet_regsql,如下图: 这里我发现C:\Windows\Microsoft.NET\Framework64的v2.0.50727路径下和v4.0.303

Sharepoint 2010配置form认证方式(SQL账号)

Sharepoint 2010配置form认证方式(SQL账号) 一.准备工作: 1.首先我们创建我们form认证中所需要的数据库. 找到aspnet_regsql.exe,一般在C:\Windows\Microsoft.NET下,根据操作系统进行选择.因为本人是win2008 R2x64,所以打开目录为C:\Windows\Microsoft.NET\Framework64\v2.0.50727 2.双击运行后,点击下一步,然后选择为应用程序配置sql server,如图: 3.填写,服务器名

SharePoint 2013 配置基于AD的Form认证

前 言 配置SharePoint 2013基于AD的Form认证,主要有三步: 1. 修改管理中心的web.config: 2. 修改STS Application的web.config: 3. 修改Web应用程序的web.config并开启FBA: 首先,修改CA的web.config,一般在不知道端口号的时候(因为创建CA的时候,即使我们修改了端口号,创建后也会使用默认的那个,但是访问却使用我们填写的那个),我们选择在IIS中找到CA文件路径,如下图: 通常我们应该先进行web.config

Sharepoint 2010 工作流启动时处理表单出错

问题: Shareoint 2010 列表工作流启动时,显示“处理表单时出现严重错误”. Error Message-1: Object doesn't support property or method 'addeventlistener' Error Message-2: There has been a critical error while processing the form. Troubleshooting 1.   Check in different machine to

SharePoint 2010 电子表单之重复表

SharePoint 2010 表单之重复表 一般来讲SharePoint的表单有三种方式 1. Infopath表单的对应特定的列表(直接在列表中可以自定义列表,只适用特定列表) 2. 复杂的表单,如需要重复表,且重复表的数据需用来统计 3. Infopath: 新建一个Infopath,然后通过发布,激活,适应多个列表. 下面是一个重复表的开发实例,如下图所示: 下面是开发这种表单的常用代码: 前台代码: <div style="padding-top: 10px;">