2008-09-12 3 views
2

프로그래밍 방식으로 특정 Sharepoint 웹 응용 프로그램과 연결된 공유 서비스 공급자의 이름을 검색하는 방법은 무엇입니까?연관된 공유 서비스 공급자의 이름을 검색하고 있습니까?

내가 필요로하는 맞춤형 솔루션을 가지고 :

  1. 열거는 웹 애플리케이션의 각
  2. 액세스과 관련된 공유 서비스 제공 업체에서
  3. 그림에 배포있어 모든 웹 응용 프로그램을 일부 데이터를 검색하기 위해 SSP에 설치된 비즈니스 데이터 카탈로그
  4. 해당 웹 응용 프로그램의 모든 사이트 모음을 통해 열거합니다.
  5. 데이터에 따른 사이트 모음

나는 1, 3, 4, 5 점을 얻었지만, 2는 다소 번거롭다. 어디에서나 SSP 이름을 하드 코딩하지 않고 팜 관리자가 수동으로 구성 파일을 편집 할 필요가 없습니다. 필요한 모든 정보는 Sharepoint 구성 데이터베이스에 있습니다. 개체 모델을 통해 액세스하는 방법을 알아야합니다.

답변

2

불행히도 이것이 수행 될 수 있다는 것을 알고있는 지원 방법이 없습니다. 관련 클래스는 Microsoft.Office.Server.Administration 네임 스페이스의 Microsoft.Office.Server DLL에있는 SharedResourceProvider입니다.

SharedResourceProvider sharedResourceProvider = ServerContext.GetContext(SPContext.Current.Site).SharedResourceProvider; 
string sspName = sharedResourceProvider.Name; 

후 반사 : 그것은 내부 그래서 사전 반사를 표시 것

ServerContext sc = ServerContext.GetContext(SPContext.Current.Site); 
PropertyInfo srpProp = sc.GetType().GetProperty(
    "SharedResourceProvider", BindingFlags.NonPublic | BindingFlags.Instance); 
object srp = srpProp.GetValue(sc, null); 
PropertyInfo srpNameProp = srp.GetType().GetProperty(
    "Name", BindingFlags.Public | BindingFlags.Instance); 
string sspName = (string)srpNameProp.GetValue(srp, null); 

대안이 권장되지 않습니다 구성 데이터베이스에 대한 SQL 쿼리를 작성하는 것입니다.

관련 문제