FBAユーザーをSharePoint userInfoリストに追加します
-
10-10-2019 - |
質問
C#のメンバーシップクラスを使用して、フォームベースの認証プロバイダーに新しいユーザーを追加することに成功しています。いくつかのパブリックサイトをログインすることはできますが、ピッカーのピッカーで新しい作成されたユーザーを検索しようとした後、彼は表示されません。
wss_content_*データベースにuserinfoレコードを追加する必要があるようです。そこで、SharePointで実行されているPeople.asmx Webサービスを参照しました。次のメソッドを使用してuserInfoを作成しようとした後、メソッドは解決されていないプリンシパルインフーオブジェクトを返します(userinInfoidは-1、isResolved is falseなど)。
peopleservice.People service = new peopleservice.People();
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
string[] users = new string[] { txtCreateEmail.Text };
var result2 = service.ResolvePrincipals(users, brnextranet.SPPrincipalType.User, true);
欠落しているステップはありますか?
解決
SharePointサーバーで実行されているWebサービスを作成することで、問題を解決することができました。 userinfoレコードを作成するには、次の2つの方法が必要です。
[WebMethod]
public void CreateUser(string username)
{
SPWeb web = new SPSite(this.ExtranetSite).OpenWeb();
web.AllUsers.Add(this.MembershipProvider + ":" + username, username, username, "");
web.EnsureUser(this.MembershipProvider + ":" + username);
}
[WebMethod]
public void DeleteUser(string username)
{
SPWeb web = new SPSite(this.ExtranetSite).OpenWeb();
web.SiteUsers.Remove(this.MembershipProvider + ":" + username);
web.Update();
}
所属していません StackOverflow