Domanda

Un utente login nel sito di SharePoint che abbiamo creato utilizzando il proprio indirizzo email e questo diventa il loro nome utente. Tuttavia, questo crea un problema per MySites.

Quando l'utente crea un sitopersonale l'URL taglia di qualsiasi cosa dopo il simbolo @ nel nome utente, quindi, se l'indirizzo di posta elettronica degli utenti è user1@test.com l'URL per il loro sito personale diventa:

http://host/personal/user1/

Tuttavia, questo causa un problema se il loro è un altro utente con lo stesso prefisso e-mail, ma con un dominio diverso vale a dire user1@anotherdomain.com. Questo utenti MySite URL deve anche essere

http://host/personal/user1/

Quando l'utente si inscrive al sito che creano il loro profilo e MySite utilizzando questo codice:

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;

C'è qualcosa che posso fare qui per controllare l'URL utilizzato?

- modifica

Il comportamento di cui sopra è di default per MOSS. Cioè Non sto prendendo manualmente dell'indirizzo di posta elettronica degli utenti, questo è qualcosa che il MOSS sta facendo automaticamente. Io preferirei se potrei dire l'URL dovrebbe essere:

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

Ho provato sfuggire l'indirizzo email e assegnandola al valore di spazio personale in questo modo:

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

....

, ma questo non ha aiutato.

È stato utile?

Soluzione

Questo è un modo non comune di farlo, c'è qualche motivo specifico gli utenti vengono creati sulla base della non-mail il nome utente? Comunque, ecco alcune idee.

  • Utilizza normali soluzioni di denominazione di conflitto, includere il dominio nella user_domain URL,
  • Crea un user_1 ID univoco, utente_2 se un conflitto accade e verificare quale numero è dopo la sottolineatura per generare quello successivo.

modifica

Sulla base della sua modifica, è possibile configurare la risoluzione dei conflitti di muschio per sé, è per questo che ho detto che era un modo strano di creare gli URL,

Nel vostro SSP, vai a Impostazioni MySite, guardare il denominazione siti Formato gruppo

Le opzioni disponibili:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top