如何以编程方式检索与特定Sharepoint Web应用程序关联的共享服务提供程序的名称?
我有一个需要的自定义解决方案:
我得到了积分1,3,4和5,但是2有点麻烦。我想避免在任何地方硬编码SSP名称,也不要求服务器场管理员手动编辑配置文件。我需要的所有信息都在Sharepoint配置数据库中,我只需要知道如何通过对象模型访问它。
答案 0 :(得分:1)
不幸的是,我不知道可以做到这一点的支持方式。相关类是Microsoft.Office.Server.Administration命名空间中的SharedResourceProvider,位于Microsoft.Office.Server DLL中。它标志着内部如此预先反思:
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查询。