場景:一般須要爲sharepoint打通其餘的系統整合到sharepoint認證,ad一般是爲內部域用戶,外網訪問的可使用membership來登陸,那麼這個既能夠內部用戶訪問,外部用戶也能夠訪問 ,另外也能夠把其餘的用戶加到membership裏面.web
目錄:sql
點擊後彈出一個界面,點擊ribbon工具欄新建一個application數據庫
在彈出的窗口中選擇基於身份的驗證(Claims Based Authentication),完成後IIS將建立一個新的IIS站點,若是須要你能夠修改這個站點名字,如Sharepoint --FBA Test ,這裏須要選一個可用的端口.windows
向下滑動一點,配置基於forms的認證,選擇開啓基於forms認證,而且配置membership提供者命名爲FBAMembership,接着配置角色提供者FBARoles安全
最後一步配置應用程序池爲網絡服務網絡
滑倒底部點擊OK,這個須要10-15秒建立一個新的application. 建立完成後出現以下畫面;app
除了使用基於windows認證以外仍是用了基於forms認證,點擊ok建立一個site collection而且把windows 賬號設置爲主要的管理員(primary)asp.net
打開visual studio 2010窗口命令工具,輸入aspnet_sqlreg,回車後彈出一個嚮導配置數據庫.按照默認將數據庫命名爲membershipdb,結構以下:ide
接下來的事情將是要添加一些用戶和角色到數據庫中,別且使用vs修改web配置文件中的鏈接字符串.在「<connectionStrings/>」 節點裏面工具
<connectionStrings> <clear/> <add name="AspNetSqlProvider" connectionString="data source=xxx; Integrated Security=SSPI;Initial Catalog=membershipdb;" providerName="System.Data.SqlClient" /> </connectionStrings>
而後在</system.web> 標記結束的地方,添加下面的節點,這裏用AspNetSqlMembershipProvider和AspNetSqlRoleProvider來命名比較好記,等以後配置的時候使用FBAMembership和FBARoles,這個命名是次要的,主要是數據庫指向的字符串名字和應用程序的名字要正確.
1: <membership defaultProvider="AspNetSqlMembershipProvider"> 2: <providers> 3: <clear /> 4: <add name="AspNetSqlMembershipProvider" 5: connectionStringName="AspNetSqlProvider" 6: applicationName="/" 7: type="System.Web.Security.SqlMembershipProvider, System.Web, 8: Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 9: </providers> 10: </membership> 11: <roleManager defaultProvider="AspNetSqlRoleProvider"> 12: <providers> 13: <clear/> 14: <add name="AspNetSqlRoleProvider" 15: connectionStringName="AspNetSqlProvider" 16: applicationName="/" 17: description="Stores and retrieves roles data from the local Microsoft SQL Server database" 18: type="System.Web.Security.SqlRoleProvider, System.Web, 19: Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 20: 21: </providers> 22: </roleManager>
默認狀況下程序配置爲windows認證,須要改爲forms認證,切換到安全選項卡,點擊來自網絡而且保存.
保存後web.config會默認已經被修改爲forms認證.在安全選項卡啓用角色,點擊管理或建立角色,選擇FBAAdministrators,FBAOwners和FBAUsers
點擊建立用戶連接建立一個adminfba,而且分配角色爲FBAAdministrators
你還能夠建立其餘的用戶而且分配到不一樣的角色裏面,如ownerfbs分配到FBAOwners角色中,userfbs分配到FBAUsers角色中
另外建立用戶的時候密碼有一些要求.
具體參見memebership默認設置
當咱們建立了sharepoint的application,咱們須要在IIS的應用程序池裏面設置爲網絡服務賬號.這個能夠連通sql認證.或許你須要在真實的環境中使用其餘的賬號.
須要爲應用程式池添加一個登錄帳號.
下一步爲他們添加適當的權限,把賬號添加到
aspnet_Membership_BasicAccess 和 aspnet_Roles_BasicAccess 角色中
千萬要記住必須作這些設置,否則回報安全錯誤.
添加的方法同asp.net站點同樣,不過咱們可使用IIS 管理工具來添加.
打開站點名字爲SharePoint – FBA Test
雙擊鏈接字符串選項,而且添加一個名爲AspNetSqlProvider 而後點擊肯定.
而後到sharepoint的web.config檢查以下:
1: <connectionStrings> 2: <add name="AspNetSqlProvider" 3: connectionString="data source=xxx; Integrated Security=SSPI;Initial Catalog=memebershipdb;" 4: providerName="System.Data.SqlClient" /> 5: </connectionStrings>
而後到管理中心做如上操做.
再到web service裏面找到節點SecurityTokenServiceApplication添加鏈接字符串同上.
添加memebership和role的角色
打開IIS管理工具,展開SharePoint – FBA Demo,點擊provider,建立一個FBARoles角色而且類型爲SqlRoleProvider,應用程序輸入「/」 鏈接字符串選擇AspNetSqlProvider
再添加一個FBAMembership角色,類型是SqlMembershipProvider,鏈接字符串爲AspNetSqlProvider,application是「/」
全部添加完了以後打開配置文件就是這樣:
<membership defaultProvider="i"> <providers> <add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> <add name="FBAMembership" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/" connectionStringName="AspNetSqlProvider" enablePasswordReset="false" enablePasswordRetrieval="false" passwordFormat="Clear" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" /> </providers> </membership> <roleManager defaultProvider="c" enabled="true" cacheRolesInCookie="false"> <providers> <add name="c" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> <add name="FBARoles" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/" connectionStringName="AspNetSqlProvider" /> </providers> </roleManager>
點擊SharePoint Central Administration v4」 作如上操做,添加FBAMembership 和FBARoles 像以前描述得那樣.展開SharePoint Web Services作法雷同.
而後到管理中心去打開添加用戶,若是在彈出的對話框中能夠看到在membership中配置的用戶和角色,那麼說明已經正常了,
用戶的字符串像這個樣子:「i:0#.f|fbamembership|adminfba」.
而後把用戶設爲full control
在新站點上可能看到以下錯誤,
選擇forms認證而且登陸爲adminfbs便可.
登陸進去你將擁有管理員的權限.
如今這個用戶有徹底控制,能夠把以前在memebership中的角色配置到sharepoint組裏面.
而後用其餘的各類角色的賬號測試一下. 權限低的角色將限制了一部分權限.