日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【FBA】SharePoint 2013自定义Providers在基于表单的身份验证(Forms-Based-Authentication)中的应用...

發布時間:2024/9/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【FBA】SharePoint 2013自定义Providers在基于表单的身份验证(Forms-Based-Authentication)中的应用... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

//http://www.cnblogs.com/OceanEyes/p/custom-provider-in-sharepoint-2013-fba-authentication.html

?

由于項目的需要,登錄SharePoint Application的用戶將從一個統一平臺中獲取,而不是從Domain中獲取,所以需要對SharePoint Application的身份驗證(Claims Authentication Types)進行更改,即采用更加靈活的混合模式登錄:Windows Authentication和Forms Based Authentication。故本篇博客將著重筆墨去介紹SharePoint 2013自定義Providers在基于表單的身份驗(Forms-Based-Authentication)中的應用。

更改身份驗證

首先需要了解的一點事,怎樣去更改指定的Web Application?的身份驗證。進入SharePoint 2013 Central Administration-àApplication Management-àManage Web Applications-àAuthentication Providers,即如下所示:

如截圖所示那樣,啟用了FBA之后,需要我們提供自定義的Menbership Provider和Role Provider。

創建Membership Provider和Role Provider

這兒我選擇創建一個Class Library,當然你也可以直接創建一個SharePoint 2013 Empty Project,注意不管是哪種,最終都需要把Assembly 注冊/安裝 到GAC里

  • 如果是創建了SharePoint Project,要安裝Assembly到GAC,直接部署就行。
  • 如果是創建了Class Library,需要有兩個步驟1).Sign the assembly(右鍵項目-àProperty-àSigning),2)gacutil /i "<assembly path/assembly name.dll>",如下所示(使用VS Command Tool):

獲取Strong Name Key File

安裝Assembly到GAC

對于.NET 4.0以上的Assembly,GAC位于C:\Windows\Microsoft.NET\assembly。.NET 3.5 GAC在C:\Windows\assembly,所以別找錯地方。Assembly成功注冊到GAC后,最好IISReset下。

接著,創建相關的Provider,分別繼承MembershipProvider和RoleProvider即可。

  • ?自定義MembershipProvider,主要代碼如下:
+ View Code
  • 自定義Role Provider,如下所示:
+ View Code
  • 自定義的Provider成功安裝到GAC之后,接著修改web.config。注意需要修改3個地方,Web Application Config、SharePoint Central Administration Config、SecurityTokenServiceApplication,其路徑如果記不住的話,打開IIS,瀏覽即可,即如下所示:

修改Web Config

Web Config需要Assembly的Public Key Token,可以使用VS Command Tool來獲取:

  • 首先修改Web Application的Web Config,找到其Membership節點,將以下代碼復制進:
<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 name="CustomMembershipProvider" type="Eyes.CustomProvider.FBA_CustomRoleProvider,Eyes.CustomProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c4a0ffa664cbc06c" /></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 name="CustomRoleProvider" type="Eyes.CustomProvider.FBA_CustomMembershipProvider,Eyes.CustomProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c4a0ffa664cbc06c" /></providers></roleManager>
  • 接著修改SharePoint Central Administration的Web Config,
<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 name="CustomMembershipProvider" type="Eyes.CustomProvider.FBA_CustomRoleProvider,Eyes.CustomProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c4a0ffa664cbc06c" /></providers></membership><roleManager><providers><add name="c" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /><add name="CustomRoleProvider" type="Eyes.CustomProvider.FBA_CustomMembershipProvider,Eyes.CustomProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c4a0ffa664cbc06c" /></providers></roleManager>
  • 然后修改SecurityTokenSeriveApplication的Web Config,
<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 name="CustomMembershipProvider" type="Eyes.CustomProvider.FBA_CustomRoleProvider,Eyes.CustomProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c4a0ffa664cbc06c" /></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 name="CustomRoleProvider" type="Eyes.CustomProvider.FBA_CustomMembershipProvider,Eyes.CustomProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c4a0ffa664cbc06c" /></providers></roleManager></system.web>
  • 最后將Web Application的Authentication Type修改為混合模式,如下所示

分配用戶并測試

成功為Web Application創建了自定義的Provider之后,接著就是測試是否成功。如添加訪問用戶,可以如下圖操作所示:

搜索用戶,如下圖所示:

訪問Site,提示混合登錄模式,如下圖所示:

登錄成功后顯示信息:

小結

當以Windows Authentication注銷時,會發生錯誤(查閱日志后報錯信息encodeValue不能為空)。我猜是沒清理Session,查了很多資料,發現這是個別現象。不知道最新的SharePoint 2013 Updates有沒有解決這個問題。我的版本是SharePoint 2013 Server(原始版本,從未更新過)。如果解決的話,勞煩各位朋友告訴我一下。點擊代碼下載

轉載于:https://www.cnblogs.com/TNSSTAR/p/3982193.html

總結

以上是生活随笔為你收集整理的【FBA】SharePoint 2013自定义Providers在基于表单的身份验证(Forms-Based-Authentication)中的应用...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。