一个用户登录到SharePoint的网站上,我们已经创造了使用他们的电子邮件地址,这将成为他们的用户名。但是这造成了一个问题"我的网站"中.

当用户创建一个页:URL它削减的任何后@符号用户名,因此,如果用户的电子邮件地址是user1@test.com URL他们页:变为:

http://host/personal/user1/

然而,这就引起一个问题,如果他们的是另一个用户有相同的电子邮件的前缀但有一个不同的领域,即user1@anotherdomain.com.这个用户页:URL也需要

http://host/personal/user1/

当用户登录到网站上,我们创建他们的个人资料页:使用这个代码:

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;

有什么我可以在这里做要控制使用的URL?

-编辑

上述行为是默认的用于苔藓。I.e。我不是手动取得的用户的电子邮件地址,这是MOSS是在做自动的。我会喜欢它如果我能说的URL应该是:

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

我已经尝试过逃脱的电子邮件地址,并将其分配给个人空间值,像这样:

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

....

但是,这并没有帮助。

有帮助吗?

解决方案

这是一种罕见的方式这样做,是否有任何具体原因的用户基础上创建电子邮件不用户名?无论如何,这里的一些想法。

  • 使用正常的命名的冲突解决方案,包括该领域中的url user_domain,
  • 创建一个独特的Id user_1,user_2如果发生冲突和复什么样的数字是后强调了产生下一个。

编辑

基于你的编辑,你可以配置解决冲突在莫斯本身,这就是为什么我说,这是一个奇怪的方式创建网址,

在你SSP,去页:设置,看看 网站命名的格式 小组

你的选择:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top