我目前正在將構建於Sharepoint 2007上的企業內容管理系統遷移到Sharepoint 2010.系統包含基於自定義表單的身份驗證提供程序和自定義角色提供者。用戶角色的映射被存儲在DB象下面這樣:Sharepoint 2010 - 如何訪問網站請求身份驗證的URL到自定義角色提供商
用戶ID角色ID SITEURL
21 15 www.sitea.com
21 10 www.siteb.com
22 15 www.sitea.com
在角色提供者中,分配給當前站點的角色是通過站點URL獲取和設置的。這可以通過在其Initilize方法中設置角色提供程序的自定義屬性(例如,名爲SiteURL的屬性)來解決,如下所示:
SiteURL = SPContext.Current.Web.Url;
但是,在Sharepoint 2010中,該行無法再使用。因爲在Sharepoint 2010中聲明授權,所以在名爲SecurityToken Web服務的單獨Web服務中調用自定義角色提供程序。所以SPContext.Current爲空。
現在我必須找到一種替代方法來獲取請求身份驗證的站點URL。你會提供任何建議嗎?
那麼我正在開發的系統是爲了託管我國的一個部門的所有組織單位的網站而開發的。所有這些單位將擁有自己的sp site收集和託管單位數量將超過500個。系統在表單身份驗證背後有自己的驗證數據庫例如。假設我已經註冊到站點A併爲角色X分配了該站點。我也有權登錄到剩餘的網站,但不是角色X.你的解決方案,但我希望有一個更「適當」的,因爲它會創建大量的「SiteA_NewsPoster」等角色。 – mbulutay 2010-11-08 12:42:00