將使用者以程式設計方式新增至 SharePoint 2010 中的宣告網站
英文原文已於 2012 年 1 月 14 日星期六發佈
有一天,我的一位朋友寄給我一個有趣的問題。他在試著將新的使用者以程式設計方式新增至 Windows 宣告網站時,碰到了各種困難。起初,他嘗試新增具有網域\使用者名稱的使用者,然而 SPRoleAssignment 類別卻無法運作。之後,他嘗試各種方式來提供應該是代表使用者名稱的宣告編碼值,並讓該編碼值部分運作,但是卻出現了一些奇怪的副作用,例如名稱出現兩次。雖然我沒辦法親自檢查他所發現的所有變化和問題來找出問題所在,但是,在我首次嘗試使用 SPWeb 上的 EnsureUser 方法後,就意外解決問題了。這比毫無頭緒地試著取得某個帳戶名稱的編碼還要容易得多,而且因為您只需要傳遞帳戶名稱,而非一般用來新增使用者的四個參數,因此容易多了。EnsureUser 會自動編碼名稱,並可簡化其程式碼。
為求完整,請參閱以下簡短範例:
using (SPSite theSite = new SPSite("https://foo"))
{
using (SPWeb theWeb = theSite.OpenWeb())
{
SPUser theUser = theWeb.EnsureUser("domain\username");
}
}
這是翻譯後的部落格文章。英文原文請參閱 Adding Users Programmatically to A Claims Site in SharePoint 2010