Question

A connexions utilisateur dans le site SharePoint, nous avons créé à l'aide de leur adresse e-mail et cela devient leur nom d'utilisateur. Cependant, cela crée un problème pour MySites.

Lorsque l'utilisateur crée une MySite l'URL, coupe de quoi que ce soit après le symbole @ dans le nom d'utilisateur, donc si l'adresse e-mail des utilisateurs est user1@test.com l'URL de leur MySite devient:

http://host/personal/user1/

Cependant, cela pose un problème si leur est un autre utilisateur avec le même préfixe e-mail, mais avec un autre domaine à savoir user1@anotherdomain.com. Ainsi, les utilisateurs URL MySite doit également être

http://host/personal/user1/

Lorsque l'utilisateur se connecte jusqu'au site que nous créons leur profil et MySite en utilisant ce code:

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;

Y at-il quelque chose que je peux faire ici pour contrôler l'URL utilisée?

- modifier

Le comportement ci-dessus est par défaut pour MOSS. C'est à dire. Je ne prends pas manuellement l'adresse e-mail des utilisateurs, c'est quelque chose que le MOSS fait automatiquement. Je préférerais que si je pouvais dire l'URL doit être:

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

J'ai essayé échapper à l'adresse e-mail et l'attribuer à la valeur de l'espace personnel comme ceci:

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

....

mais cela n'a pas aidé.

Était-ce utile?

La solution

Ceci est une façon rare de le faire, est-il une raison spécifique, les utilisateurs sont créés en fonction de l'e-mail non le nom d'utilisateur? Quoi qu'il en soit, voici quelques idées.

  • Utiliser des solutions normales de conflit de nommage, inclure le domaine dans le user_domain url,
  • créer un user_1 d'identification unique, user_2 si un conflit se produit et vérifier ce nombre est après le trait de soulignement pour générer la suivante.

modifier

En fonction de votre édition, vous pouvez configurer la résolution des conflits dans la mousse elle-même, voilà pourquoi je l'ai dit était une façon bizarre de créer les urls,

Dans votre SSP, allez à MySite Paramètres, regardez le Format de dénomination du site groupe

Vos options:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top