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,如图:

wKioL1PJQIGzRdaNAAH1okdU3Aw500.jpg

 

3、填写,服务器名称及数据库名称,然后点击下一步

wKiom1PJP32zrIbLAAGzr4Ybj2A708.jpg

4、完成

 

二、Form配置工作

1:创建一个基于身份认证的应用程序(具体参见上篇基于AD

MembershipProvider  成员

RoleManager           角色

如图:

wKioL1PJQKzxFEySAAJqoPSB06E065.jpg

wKiom1PJP7HxG8eRAADZAytiTMI517.jpg

wKioL1PJQNugG43-AABmIKjbgyw036.jpg 

 

2:修改管理中心,我们创建的应用程序,还有Web服务里面的SecurityTokenServiceApplication这个3个地方的web.config

每个地方都要加连接数据库的字符串(最好自己新建的账户给予单独的DB owner访问数据库,不然可能访问不到数据)

<connectionStrings>

         <addname="SQLConnectionString"connectionString="Data Source=profitsp;Database=WSS_Content_80;User ID=sa;password=xxxx" />

     </connectionStrings>

 

 

找到管理中心的<system.web></system.web>,配置如下:

       <roleManagerdefaultProvider="AspNetWindowsTokenRoleProvider"enabled="true"cacheRolesInCookie="false">

           <providers>

                <addconnectionStringName="SQLConnectionString"applicationName="/"description="Stores and retrieves roles from SQL Server"name="RoleManager"type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

           </providers>

       </roleManager>

       <membershipdefaultProvider="MembershipProvider">

           <providers>

                <addconnectionStringName="SQLConnectionString"passwordAttemptWindow="5"enablePasswordRetrieval="false"enablePasswordReset="false"requiresQuestionAndAnswer="true"applicationName="/"requiresUniqueEmail="true"passwordFormat="Hashed"description="Stores and Retrieves membership data from SQL Server"name="MembershipProvider"type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

           </providers>

       </membership>

 

找到应用程序的<system.web></system.web>,配置如下

       <membershipdefaultProvider="i">

           <providers>

                <addname="i"type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />

                <addconnectionStringName="SQLConnectionString"passwordAttemptWindow="5"enablePasswordRetrieval="false"enablePasswordReset="false"requiresQuestionAndAnswer="true"applicationName="/"requiresUniqueEmail="true"passwordFormat="Hashed"description="Stores and Retrieves membership data from SQL Server"name="MembershipProvider"type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

           </providers>

       </membership>

       <roleManagercacheRolesInCookie="false"defaultProvider="c"enabled="true">

           <providers>

                <addname="c"type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />

                <addconnectionStringName="SQLConnectionString"applicationName="/"description="Stores and retrieves roles from SQL Server"name="RoleManager"type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

           </providers>

       </roleManager>

 

找到SecurityTokenServiceApplication站台web.config,它里面没有<system.web></system.web>,你需要自己添加

     <system.web>

 

         <roleManagerdefaultProvider="c"enabled="true"cacheRolesInCookie="false">

              <providers>

                   <addname="c"type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />

                   <addconnectionStringName="SQLConnectionString"applicationName="/"description="Stores and retrieves roles from SQL Server"name="RoleManager"type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

              </providers>

         </roleManager>

         <membershipdefaultProvider="i">

              <providers>

                   <addname="i"type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />

                   <addconnectionStringName="SQLConnectionString"passwordAttemptWindow="5"enablePasswordRetrieval="false"enablePasswordReset="false"requiresQuestionAndAnswer="true"applicationName="/"requiresUniqueEmail="true"passwordFormat="Hashed"description="Stores and Retrieves membership data from SQL Server"name="MembershipProvider"type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

              </providers>

         </membership>

 

     </system.web>

 

改好后,可以自己创建一个用户。先设置默认的提供程序,然后就能用iis的功能添加用户。添加好用户后记得还原默认提供程序






 

wKiom1PJP_Kgx-5SAAOESfNe_GI784.jpg

wKioL1PJQQ3BK5wyAAMR35xQlZI580.jpg

wKiom1PJP_OQ1KkTAAJPCjD8SOM057.jpg

wKioL1PJQQ6Apc72AAJIp5TiXbA975.jpg

wKiom1PJP_TimZ5hAALEWyvKAzg909.jpg

 

 

4、配置站点form验证

 wKioL1PJQSPwgqsKAATOu8874W4376.jpg

 

5、用刚才建立的form账号设置为站点集管理员

wKiom1PJQBahXJPLAAK8O4s96Uo038.jpg

6、在iis中进行验证,参看如下

双击功能视图中的(连接字符串),然后,在打开的视图中,选择右边的添加。然后,在弹出窗口中输入我们连接字符串的名称、数据库服务器、数据库名称、及指定凭据。凭据为我们刚刚数据库中建立的用户名(baigujing,最后点击确定按钮。如图:

wKioL1PJQVDCwqbnAAGGyz_LSDA895.jpg

wKiom1PJQDbDwdwDAAE5PsVC3_0214.jpg

(3)、回到管理中心站点的功能视图,双击提供程序,然后选择列表中的(.NET角色)选项,点击添加按钮,在弹出的窗口中依次填写,选择类型、名称、ApplicationNameConnectionaStringName。然后点击确定。如图:

wKiom1PJQFajDdpfAAGDzlLbkfQ954.jpg

wKioL1PJQXHhKTdcAAGiyyqB1Ro216.jpg

(4)、回到提供程序界面,然后在列表中选择(.NET用户)选项,单击添加按钮,在弹出的窗口中依次填写类型、名称、applicationnameconnectionstringname,然后点击确定。如图:

wKiom1PJQHGhf8_3AAHv-HLpS24658.jpg

wKioL1PJQY2R55WeAAIBYm1IokY745.jpg


 

7、完成,可以进行登录测试

 wKiom1PJQILzqlnVAAHuIyxnRG0583.jpg

 

参考文章:

http://blog.sina.com.cn/s/blog_7778950d0100uu64.html

http://blog.csdn.net/foxdave/article/details/5793696