首页 > 代码库 > SharePoint如何模拟用户
SharePoint如何模拟用户
try { SPSecurity.RunWithElevatedPrivileges(delegate() //用此方法模拟管理员账户运行此事件处理程序 { SPWeb web = SPContext.Current.Web; //此时用户为sharepoint\system //Response.Write("用户为:" + web.CurrentUser); web.AllowUnsafeUpdates = true; //获取到要模拟的用户的token SPUser user = web.EnsureUser("veekee\\user1"); SPUserToken token = user.UserToken; //利用用户Token构造新的Site对象 SPSite siteWithUser = new SPSite(web.Url, token); SPWeb webWidthUser = siteWithUser.RootWeb; //此时用户为veekee\user1 //Response.Write("用户为:" + webWidthUser.CurrentUser); webWidthUser.AllowUnsafeUpdates = true; //利用veekee\user1 用户来添加纪录 SPList list = webWidthUser.Lists["test1"]; SPListItem item = list.AddItem(); item["Title"] = "11"; item.Update(); webWidthUser.Dispose(); siteWithUser.Dispose(); web.Dispose(); }); } catch (Exception ex) { throw ex; }
相关信息
在SharePoint模拟指定用户身份进行操作的代码: string siteUrl = "http://ecpe-dev:82/sites/sjs" ; //首先用管理员身份取到某个用户的Token //应该用SPSecurity.RunWithElevatedPrivilege来提升权限. SPSite site = new SPSite(siteUrl); //此时用户为SHAREPOINT\system Response.Write(site.RootWeb.CurrentUser); //获取到要模拟的用户的token SPUser user = site.RootWeb.SiteUsers["saicmotorlab\\user1"]; //利用用户Token构造新的Site对象 SPSite siteWithUser = new SPSite(siteUrl, user.UserToken); SPWeb webWithUser = siteWithUser.RootWeb; //此时用户为SAICMOTORLAB\user1 Response.Write( webWithUser.CurrentUser ); SPList listWithUser = webWithUser.Lists["simeList"]; //other code 以上代码可以用在需要采用指定用户权限操作的情况,如写个web服务,按照传入的用户名返回其有权查看的ListItem。
SharePoint如何模拟用户
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。