Conflitto SharePoint MySites URL
-
18-09-2019 - |
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.
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:
-
nome utente (non risolvere i conflitti) Esempio: http: // portal_site / posizione / username /
-
nome utente (risolvere i conflitti utilizzando dominio_nomeutente) Esempio: ... / username / o ... / dominio_nomeutente /
-
Dominio e nome utente (conflitti non possibili) Esempio: http: // portal_site / posizione / dominio_nomeutente /