Pregunta

Estamos añadiendo con éxito un nuevo usuario a nuestras formas de proveedor de autenticación basado en el uso de la clase de miembro en C #. Estamos en condiciones de iniciar sesión algunos sitios públicos, pero después de tratar de buscar el nuevo usuario creado en el selector de personas que no aparece.

Parece que hay que añadir un registro de información del usuario en el WSS_Content_ * Base de datos. Por lo que hace referencia a la people.asmx servicio Web que se ejecutan en nuestra Sharepoint. Después de tratar de crear el UserInfo usando el siguiente método, el método devuelve un objeto PrincipalInfo no resuelto (UserInfoID es -1, IsResolved es falsa, etc.).

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);

¿Hay pasos que faltan?

¿Fue útil?

Solución

yo era capaz de resolver el problema mediante la creación de un servicio Web que se ejecuta en el servidor de Sharepoint. Se requieren los dos métodos siguientes para crear un registro de información del usuario:

    [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();
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top