【发布时间】:2011-02-23 04:11:59
【问题描述】:
我有 MOSS 服务器,用户授权正在通过 AD。
我想以编程方式获取一些当前用户信息,例如电子邮件、电话号码。
我做了以下步骤:
1) 使用 [程序集:AllowPartiallyTrustedCallers] 创建 dll
2) 我有继承 System.Web.UI.WebControls.WebParts.WebPart
的类 PhoneBookCL
我尝试覆盖 CreateChildControls() 进行测试;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.Office.Server;
using Microsoft.Office.Server.UserProfiles;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.Portal;
public class PhoneBookCL : WebPart
{
SPUser currentUser = null;
protected override void CreateChildControls()
{
try
{
SPWeb web = SPControl.GetContextWeb(Context);
currentUser = web.CurrentUser;
}
catch (Exception exp) { value = exp.Message; }
}
}
3) 为 dll 分配强名称,然后将 SafeControl 添加到 web.config:
4) dll -> 到 \Bin 目录,将此 WebPart 添加到 SP webparts 集合中, 将 Web 部件添加到新页面。
刷新页面到异常:意外异常。
如果我删除
"SPWeb web = SPControl.GetContextWeb(Context);
currentUser = web.CurrentUser;"
然后一切都很好。
我可以创建 Label 并更改其 Text 属性和其他内容。 另外我尝试从Microsoft.SharePoint.WebControls.WebPart继承,实际上继承了UI...WebPart,所以结果是一样的。
可能存在一些安全问题?
【问题讨论】:
标签: sharepoint