我正在尝试获取确定用户属性的当前隐私状态。我什么都不做,我只需要知道属性是如何配置的,这样我就可以做出决定了。这是我的代码:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite("http://sp2010dev:3767"))
{
context = SPServiceContext.GetContext(site);
psm = ProfileSubtypeManager.Get(context);
upm = new UserProfileManager(context, false);
UserProfile user = upm.GetUserProfile(false);
Privacy privacy = user["SPS-Skills"].Privacy;
}
});
我收到此消息:拒绝访问:除非您是管理员,否则您可以检索自己的个人资料的隐私设置。
有任何线索吗?
答案 0 :(得分:3)
奇怪!!! 它应该是你的代码。不知道为什么它不运行?
你应该试试这个
try
{
SPUser AdminUser = SPContext.Current.Web.AllUsers[@"SHAREPOINT\SYSTEM"];
var superToken = AdminUser.UserToken;
HttpContext con = HttpContext.Current;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(SPContext.Current.Site.Url, superToken))
{
SPServiceContext context = SPServiceContext.GetContext(site);
HttpContext.Current = null;
UserProfileManager upm = new UserProfileManager(context, false);
\\get useprofile code
}
});
HttpContext.Current = con;
}
catch (Exception ex)
{
throw ex;
}
跳这有帮助。