sharepoint中怎么控制具体的字段呢?

lwp850210 2009-07-28 04:52:57
shareponit中 一个普通的列表 我想让匿名用户新建列表时 某些字段不显示 该怎么做?

我在新建页面中放了个webpart onlaod里面
SPList list = web.Lists["a"];
SPUser user = SPContext.Current.Web.CurrentUser;

SPField field1 = list.Fields["aa"];
if (user == null)//匿名
{
web.AllowUnsafeUpdates = true;

field1.ShowInNewForm = false;
field1.Update();

web.AllowUnsafeUpdates = false;
}

field1.Update();之后 用户直接就变成系统用户了 该怎么解决?
...全文
106 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwp850210 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yuanyuyuyu 的回复:]
做一个常量记住update()之前的用户信息,没别的什么号办法了把
[/Quote]

之前是匿名 不能把权限调回去的吧
yuanyuyuyu 2009-07-31
  • 打赏
  • 举报
回复
做一个常量记住update()之前的用户信息,没别的什么号办法了把
lwp850210 2009-07-31
  • 打赏
  • 举报
回复
ding
yuanyuyuyu 2009-07-30
  • 打赏
  • 举报
回复
后台执行的代码都是由sharepoint的内部账户去执行的

你是说update()后,当前登陆用户是系统账户了,而不是匿名的了?
无·法 2009-07-30
  • 打赏
  • 举报
回复
帮顶
lwp850210 2009-07-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yuanyuyuyu 的回复:]
后台执行的代码都是由sharepoint的内部账户去执行的

你是说update()后,当前登陆用户是系统账户了,而不是匿名的了?
[/Quote]

对 就是这样 应该怎么办呢
龙翔飞雪 2009-07-28
  • 打赏
  • 举报
回复
修改Field的定义是需要权限的, 要想绕过权限控制, 如下写法:

SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(siteId)) //这里必须重新取SPSite对象, 新取到的site对象, 是有full control权限的.
{
using (SPWeb web = site.OpenWeb(webUrl))
{
//你的代码,

}
}
});

3,242

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 SharePoint
社区管理员
  • SharePoint社区
  • 霖雨
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧