Pregunta

A inicios de sesión de usuario en el sitio de SharePoint que hemos creado utilizando su dirección de correo electrónico y esto se convierte en su nombre de usuario. Sin embargo, esto crea un problema para MySites.

Cuando el usuario crea una MySite la URL corta de nada después del símbolo @ en el nombre de usuario, por lo que si la dirección de correo electrónico del usuario es user1@test.com la URL a su MySite se convierte en:

http://host/personal/user1/

Sin embargo, esto causa un problema si su es otro usuario con el mismo prefijo de correo electrónico, pero con un dominio diferente es decir user1@anotherdomain.com. Esta URL usuarios MySite también tiene que ser

http://host/personal/user1/

Cuando el usuario se registra en el sitio que crean su perfil y MySite utilizando este código:

if (!profileManager.UserExists(username))
{
  UserProfile profile = profileManager.CreateUserProfile(username);
  profile["PreferredName"].Value = fullname!=null?fullname:username;
  profile["WorkEmail"].Value = email != null ? email : "";
  profile["PersonalSpace"].Value = email;
  profile.Commit();
  #region create User My Site
  using (SPSite site = profile.PersonalSite)
  {
    if (site == null)
    {
      try
      {
        profile.CreatePersonalSite();
      }
      catch (Exception ex)
      {                                           
        System.Diagnostics.Trace.WriteLine(string.Format("CreateMySite - {0}", ex.Message));
        throw ex;
      }
    }
  }
  #endregion
}
HttpContext.Current = httpCxt;

¿Hay algo que pueda hacer para controlar la URL utilizada?

- editar

El comportamiento anterior es defecto para MOSS. Es decir. No estoy tomando manualmente la dirección de correo electrónico del usuario, esto es algo que el musgo está haciendo de forma automática. Yo preferiría que podría decir la URL debe ser:

http://host/personal/user1-at-test-dot-com 

He tratado de escapar de la dirección de correo electrónico y asignarlo al valor de espacio personal, así:

string clean = email.Replace("@","-at-");
profile["PersonalSpace"].Value= clean;

....

pero esto no ha ayudado.

¿Fue útil?

Solución

Esta es una forma poco común de hacerlo, ¿hay alguna razón específica los usuarios se crean basándose en el correo electrónico no el nombre de usuario? De todos modos, aquí hay algunas ideas.

  • Utilice soluciones normales conflicto de nombres, incluir el dominio en el user_domain url,
  • crear un identificador único usuario_1, usuario _2 si ocurre un conflicto y comprobar qué número está después del guión para generar la siguiente.

editar

En función de su edición, puede configurar la resolución de conflictos en sí mismo musgo, es por eso que dije que era una forma extraña de la creación de las direcciones URL,

En su SSP, vaya a Configuración de Mi sitio, mira el Denominación del sitio Formato grupo

Sus opciones:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top