原文发布于 2012 年 1 月 14 日(星期六)
几天前,我的一个朋友提出了一个很值得关注的问题。他尝试以编程方式向 Windows 声明网站添加新用户,结果遇到了各种各样的问题;最初,他试图通过域\用户名和 SPRoleAssignment 类添加用户,结果行不通;然后他尝试通过各种方法为用户名提供声明编码的值,结果在一定程度上解决了问题,但是出现了一些奇怪的负面影响,如名称显示两次。我没有机会亲自研究他尝试过的所有方法和遇到的所有问题,我第一次尝试便找到了可行的方法,即使用 SPWeb 的 EnsureUser 方法。这样做比想方设法地尝试得到帐户名的编码要简单得多;这样做也容易得多,因为只需要传递帐户名,而不是传递添加用户通常必须使用的四个参数。EnsureUser 会自动处理名称的编码,因此真正简化了代码。
出于完整性考虑,下面提供了一个简短的示例:
using (SPSite theSite = new SPSite("http://foo"))
{
using (SPWeb theWeb = theSite.OpenWeb())
{
SPUser theUser = theWeb.EnsureUser("domain\username");
}
}
这是一篇本地化的博客文章。请访问 Adding Users Programmatically to A Claims Site in SharePoint 2010 以查看原文