viernes, 1 de octubre de 2010

Uso de profiles en Sharepoint 2010

Dentro de Sharepoint también se puede usar el perfil para manejar información adicional de los usuarios.

Para las clases que va usar para guardar la información podría usar una configuración como la siguiente:
Clase que deriva de ProfileBase

    public class CProfile : ProfileBase
    {
        public DatosPersona DatosPersona
        {           
            get { return (Personal)GetPropertyValue("Personal"); }
        }

        /// <summary>
        /// Get the profile of the currently logged-on user.
        /// </summary>     
        public static CProfile GetProfile()
        {
            return (CProfile)System.Web.HttpContext.Current.Profile;
        }

        /// <summary>
        /// Gets the profile of a specific user.
        /// </summary>
        /// <param name="userName">The user name of the user whose profile you want to retrieve.</param>
        public static CProfile GetProfile(string userName)
        {
            return (CProfile)Create(userName);
        }

    }

Datos que va a guardar:

    [Serializable]
    public class DatosPersona
    {
        public string Id { get; set; }

        public string NombreCompleto { get; set; }

        public string ApellidoPaterno { get; set; }
    }

Para poder registrar el profile en sharepoint tiene que agregar dentro de los assemblies que va usar sharepoint la dll donde se encuentra la clase
Un ejemplo del ensamblado que tienes que agregar a assemblies puede ser:

<assemblies>
<add assembly="Namespacedelaclase, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a992b3cd0fe46baf" />
</assemblies>

Para registrar el profile dentro de los proveedores tienes que agregar la cadena de conexión que va usar el profile, y después agregar dentro de los proveedores el nuevo profile

  • Cadena conexión


<connectionStrings>
    <add connectionString="CadenaConexion;" name="CadenaConexion" />
</connectionStrings>
 

  • Profile


<profile defaultProvider="NombreProfile" inherits=" Namespacedelaclase.CProfile">
      <providers>
        <add name=" NombreProfile " type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/" connectionStringName="CadenaConexion" />
      </providers>
</profile>