ユーザーを SharePoint 2010 のクレーム サイトにプログラムで追加する

原文の記事の投稿日: 2012 年 1 月 14 日 (土曜日)

先日、私の友人が少し興味深い問題を送ってきました。彼は、新しいユーザーを Windows クレーム サイトにプログラムで追加しようと試みていましたが、あらゆる困難に直面していました。彼は最初にドメイン/ユーザー名のユーザーと SPRoleAssignment クラスを追加しようと試みましたがうまくいきませんでした。その後、彼は、クレームのエンコードされた値を、ユーザー名として設定するべき値に提供するためのさまざまな方法を試みました。これは、部分的にうまく機能しましたが、名前が 2 回出現するなど、奇妙な副作用もいくつか伴いました。彼のすべての試みと問題を個人的に検証する機会はありませんでしたが、私は 1 回目の試みでうまく機能しました。それは、単に SPWeb で EnsureUser メソッドを使用することでした。これは、アカウント名のエンコーディングを得るための努力で無駄な時間を費やすことに比べると非常に単純です。また、この方法は、ユーザーを追加するのに通常使用する必要のある 4 つのパラメーターではなく、アカウント名を渡すだけで済むので、非常に簡単です。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」をご覧ください。