用户登录我们使用其电子邮件地址创建的SharePoint网站,这将成为他们的用户名。但是这会给MySites带来问题。
当用户创建一个MySite时,它会删除用户名中@符号后的任何内容,因此,如果用户的电子邮件地址为user1@test.com,则其MySite的URL将变为:
http://host/personal/user1/
然而,如果他们是具有相同电子邮件前缀但具有不同域的另一个用户,即user1@anotherdomain.com,则会导致问题。此用户MySite URL也需要
http://host/personal/user1/
当用户注册该网站时,我们使用以下代码创建他们的个人资料和MySite:
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;
我可以在这做些什么来控制使用的网址吗?
- 编辑
以上行为是MOSS的默认行为。即我不是手动接收用户的电子邮件地址,这是MOSS自动执行的操作。如果我可以说URL应该是:
,我更喜欢它http://host/personal/user1-at-test-dot-com
我已尝试转发电子邮件地址并将其分配给个人空间值,如下所示:
string clean = email.Replace("@","-at-");
profile["PersonalSpace"].Value= clean;
....
但这没有帮助。
答案 0 :(得分:4)
这是一种不常见的方式,有没有特定的原因根据电子邮件而不是用户名创建用户?无论如何,这里有一些想法。
根据您的编辑,您可以在moss中配置冲突解决方案,这就是我说这是创建网址的一种奇怪方式的原因,
在您的SSP中,转到“我的网站设置”,查看网站命名格式组
您的选择:
用户名(不解决冲突) 示例:http://portal_site/location/username/
用户名(使用domain_username解决冲突) 示例:... / username /或... / domain_username /
域名和用户名(不会有冲突) 示例:http://portal_site/location/domain_username/