Frage

Ein Benutzer-Logins in die Sharepoint-Website wir die E-Mail mit Adresse erstellt haben, und dies wird ihr Benutzername ein. Doch dies schafft ein Problem für MySites.

Wenn der Benutzer eine MySite die URL es nichts schneidet nach dem @ -Zeichen in den Benutzernamen, so dass, wenn der Benutzer E-Mail-Adresse ist user1@test.com die URL ihrer MySite wird:

http://host/personal/user1/

Jedoch führt dies zu einem Problem, wenn sie ein anderer Benutzer mit dem gleichen E-Mail-Präfix ist, aber mit einer anderen Domäne heißt user1@anotherdomain.com. Diese Benutzer MySite-URL muss auch sein

http://host/personal/user1/

Wenn der Benutzer meldet sich auf der Website erstellen wir ihr Profil und MySite mit diesem 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;

Gibt es etwas, was ich hier tun kann die URL verwendet zu kontrollieren?

- bearbeiten

Das oben gezeigte Verhalten ist Standard für MOSS. D. h Ich bin nicht manuell der Benutzer E-Mail-Adresse nehmen, ist dies etwas, das MOSS automatisch tut. Ich würde es vorziehen, wenn ich die URL sollte sagen könnte:

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

Ich habe versucht, die E-Mail-Adresse zu entkommen und auf den persönlichen Bereich Wert wie so zuweisen:

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

....

aber das hat nicht geholfen.

War es hilfreich?

Lösung

Dies ist eine ungewöhnliche Art und Weise, es zu tun, ist es einen bestimmten Grund, warum die Benutzer auf der Basis der E-Mail erstellt werden, nicht den Benutzernamen? Wie auch immer, hier ein paar Ideen.

  • Verwenden Sie normale Namenskonfliktlösungen, gehören die Domain in der URL USER_DOMAIN,
  • schafft eine einzigartige Id user_1, user_2 wenn ein Konflikt geschieht und überprüfen, welche Zahl nach dem Unterstrich ist die nächsten zu erzeugen.

Bearbeiten

Auf der Basis Ihres bearbeiten, können Sie die Konfliktlösung in Moos selbst konfigurieren, das ist, warum ich sagte, dass es eine seltsame Art und Weise zu schaffen, die URLs ist,

In Ihrem SSP, gehen Sie zu MySite Einstellungen, Blick auf die Site Naming Format Gruppe

Ihre Optionen:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top