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.

Foi útil?

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:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top