数据库版本为SQL server 2012
Vs版本为vs2012
Sharepoint版本为sharepoint2013
服务器系统版本为 windows server 2012
本人是刚刚接触sharepoint网站,而且计算机方面也是新手。新手写的帖子,柔和了许多其他人的帖子,只是想为日后再建立时提个醒,方便些。
首先新建一个SQL数据库的登录名(可选):
添加SQL Server登录的方法
1.展开服务器组,然后展开服务器。
2.展开"安全性",右击"登录",然后单击"新建登录"。
3.在"名称"框中,输入 Microsoft® SQL Server™ 登录的名称。
4.在"身份验证"下,选择"SQL Server 身份验证"。
5.在"密码"中输入密码。(可选)
6.可选:在"数据库"中,单击在登录到 SQL Server 实例之后登录将连接到的默认数据库。
这里我建立的账户为:GCBWX
密码为:sanqi-508
之后我们配置存储表单用户的数据库。
运用aspnet-regsql程序
位置在C:\Windows\Microsoft.NET\Framework\v2.0.50727
之后按照提示新建数据库,名称SQL-Auth
之后我们在sharepoint管理中心中新建web应用程序。
SQL-MembershipProvider 成员
SQL-RoleManager 角色
服务先选这几项,建立好网站集之后可以再添加
先不急着建立网站集,先更改修改管理中心,我们创建的应用程序,还有Web服务里面的SecurityTokenServiceApplication 这个3个地方的web.config
在每个web.config中都添加:
在<system.web></system.web>上面的位置添加
<!--下面的是添加的-->
<connectionStrings>
<addname="SQLConnectionString"connectionString="Data Source=HYPCGCB;Initial Catalog=SQL-Auth;User ID=GCBWX;password=sanqi-508" />
</connectionStrings>
<!--结束-->
找到应用程序的web.config
位置:C:\inetpub\wwwroot\wss\VirtualDirectories\80
在<system.web></system.web>中更改
<membership defaultProvider="i">
<providers>
<add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"/>
<add connectionStringName="SQLConnectionString" passwordAttemptWindow="5" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="true" passwordFormat="Hashed" description="Stores and Retrieves membership data from SQL Server" name="SQL-MembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</membership>
<roleManager defaultProvider="c" enabled="true" cacheRolesInCookie="false">
<providers>
<add name="c" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"/>
<add connectionStringName="SQLConnectionString" applicationName="/" description="Stores and retrieves roles from SQL Server" name="SQL-RoleManager" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
找到管理中心的web.config
位置在:C:\inetpub\wwwroot\wss\VirtualDirectories\40736
(40736)可能与你建的不一样。
在<system.web></system.web>中更改
<roleManager defaultProvider="AspNetWindowsTokenRoleProvider" enabled="true" cacheRolesInCookie="false">
<providers>
<add connectionStringName="SQLConnectionString" applicationName="/" description="Stores and retrieves roles from SQL Server" name="SQL-RoleManager" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
<membership defaultProvider="SQL-MembershipProvider">
<providers>
<add connectionStringName="SQLConnectionString" passwordAttemptWindow="5" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="true" passwordFormat="Hashed" description="Stores and Retrieves membership data from SQL Server" name="SQL-MembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</membership>
找到Web服务里面的SecurityTokenServiceApplication。
位置C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\WebServices\SecurityToken
修改其中的web文件。
添加
<system.web>
<roleManager defaultProvider="c" enabled="true" cacheRolesInCookie="false">
<providers>
<add name="c" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"/>
<add connectionStringName="SQLConnectionString" applicationName="/" description="Stores and retrieves roles from SQL Server" name="SQL-RoleManager" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
<membership defaultProvider="i">
<providers>
<add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"/>
<add connectionStringName="SQLConnectionString" passwordAttemptWindow="5" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="true" passwordFormat="Hashed" description="Stores and Retrieves membership data from SQL Server" name="SQL-MembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</membership>
</system.web>
之后就可以建立网站集了
不过在这之前我们先编一个可以往表单数据库中添加账户的程序。
打开vs2012:建立项目:
之后,更改web.config文件:
在<system.web>标签上添加:
<!--下面的是添加的-->
<connectionStrings>
<addname="AspNetSqlProvider"connectionString="Data Source=HYPCGCB;Initial Catalog=SQL-Auth;User ID=GCBWX;password=sanqi-508" />
</connectionStrings>
<!--结束-->
在<system.web>与</system.web>标签内替换
<membershipdefaultProvider="AspNetSqlMembershipProvider">
<providers>
<removename="AspNetSqlMembershipProvider" />
<addconnectionStringName="AspNetSqlProvider"
passwordAttemptWindow="10"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Hashed"
description="描述信息"
name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</membership>
<roleManagerenabled="true"defaultProvider="AspNetSqlRoleProvider">
<providers>
<removename="AspNetSqlRoleProvider" />
<addconnectionStringName="AspNetSqlProvider"
applicationName="/"
description="描述信息"
name="AspNetSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
之后运行项目——ASP.NET配置
通过打开的网页往所建的数据库中添加用户
之后就是建立网站集。
在sharepoint管理中心中创建网站集:
在主管理员中添加新建的表单用户。为以防万一在第二管理员中添加域用户
之后创建网站即可。
之后登陆所创建的网站,不出意外应该会成功。若无法登陆应回头看3个web.config文件时否改对,可能是创建网站集时会对所修改过的内容一定的改变。
若表单用户登录成功可以在sharepoint管理中心网站中将windows验证模式取消,方法:应用管理员账户登录sharepoint管理中心网站,点击管理web应用程序,点击所建网站基于的应用程序,之后选择身份验证提供程序,之后点击默认。
此处也可以讲匿名登录开启。
于此同时,可以检查刚刚所建的表单用户是否具有完全控制权限。方法如下
点击用户策略查看,若无,可以自行添加(是否必须还未考证)。
之后我们再次登录所建设的网站中,点击右上角的螺母标志,选择网站设置。进入界面之后选择人员和组,添加其他的表单用户,通知可以设置组的权限。同时,可以点击网站权限来设置开启网站的匿名访问。
至此,简单的网站搭建结束。
总结:sharepoint2013建立FBA身份验证(基于SQL)与2010版本基本一样,但要注意到版本问题,2013应经2010代码中的版本Version=14.0.0.0改为Version=15.0.0.0
参考:http://wenwen.soso.com/z/q108816102.htm
http://hi.baidu.com/fdpdskzbxjbhvyq/item/b34ec52d1082471309750867 (关于用于生成往数据库中写入表单用户的网站的方法)