SharePoint MySites URL Conflito
-
18-09-2019 - |
Pergunta
user logins A para o site do SharePoint criamos usando o endereço de e-mail e isso se torna seu nome de usuário. No entanto, isso cria um problema para MySites.
Quando o usuário cria uma MeuSite o URL corta de qualquer coisa após o símbolo @ no nome de utilizador, por isso, se o endereço de usuários de e-mail é user1@test.com a URL para sua MeuSite torna-se:
http://host/personal/user1/
No entanto, isto causa um problema se o seu é outro usuário com o mesmo prefixo e-mail, mas com um domínio diferente ou seja user1@anotherdomain.com. Esta usuários MeuSite URL também deve ser
http://host/personal/user1/
Quando o usuário se cadastra para o site que criar o seu perfil e MeuSite usando 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;
Existe algo que eu possa fazer aqui para controlar o URL usado?
- edição
O comportamento acima é padrão para MOSS. Ou seja, Eu não estou tomando manualmente do endereço de usuários de e-mail, isso é algo que o MOSS está fazendo automaticamente. Eu preferiria que eu poderia dizer a URL deve ser:
http://host/personal/user1-at-test-dot-com
Eu tentei escapar o endereço de email e atribuindo-lhe o valor espaço pessoal assim:
string clean = email.Replace("@","-at-");
profile["PersonalSpace"].Value= clean;
....
mas isso não ajudou.
Solução
Esta é uma maneira incomum de fazê-lo, há alguma razão específica os usuários são criados com base no e-mail e não o nome de usuário? De qualquer forma, aqui vai algumas idéias.
- Utilizar soluções de conflito de nomes normal, incluir o domínio na user_domain url,
- criar um user_1 identificação única, user_2 se um conflito acontece e verificação de que o número é após o sublinhado para gerar a próxima.
editar
Com base na sua edição, você pode configurar a resolução de conflitos no musgo si só, é por isso que eu disse que era uma maneira estranha de criar as urls,
Em seu SSP, vá para Configurações mySite, olhar para o Site Formato de Nome grupo
Suas opções:
-
Nome de usuário (não resolver conflitos) Exemplo: http: // portal_site / localização / nome de usuário /
-
Nome de usuário (resolver conflitos usando domínio_nome_de_usuário) Exemplo: ... / username / ou ... / domínio_nome_de_usuário /
-
Domínio e nome de usuário (não terá conflitos) Exemplo: http: // portal_site / localização / domínio_nome_de_usuário /