2010-12-08 2 views
1

C#의 Membership 클래스를 사용하여 Forms Based Authentication Provider에 새 사용자를 추가하는 데 성공했습니다. 우리는 일부 공개 사이트에 로그인 할 수 있지만 사람 선택 도구에서 새로 생성 된 사용자를 검색하려고 시도한 후에 나타나지 않습니다.Sharepoint에 FBA 사용자 추가 UserInfo 목록

WSS_Content_ * 데이터베이스에 UserInfo 레코드를 추가해야하는 것처럼 보입니다. 그래서 우리는 Sharepoint에서 실행되는 people.asmx 웹 서비스를 참조했습니다. 다음 메서드를 사용하여 UserInfo를 만들려고하면이 메서드는 해결되지 않은 PrincipalInfo 개체 (UserInfoID가 -1, IsResolved가 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); 

누락 된 부분이 있습니까?

답변

1

Sharepoint Server에서 실행중인 웹 서비스를 만들어서이 문제를 해결할 수있었습니다. UserInfo 레코드를 만들려면 다음 두 가지 방법이 필요합니다.

[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(); 
    }