我在SharePoint 2010上观察到,如果在用户login到SharePoint网站集后更改用户的sAMAccountName,则UserInfo表中的tp_Login字段不会更新。 它仍然有旧的用户ID。
虽然用户可以使用新帐户login到SharePoint,但这些新login不会更新表。 我有查看SPUser.LoginName的代码,并且此值似乎是现在旧的tp_Login字段值。 这个值是旧的事实导致我的代码失败。
我怀疑这种行为在SharePoint 2007中是相同的。
有没有办法强制SharePoint识别新的sAMAccountName? 我怀疑configuration文件同步可能会有所帮助,但是我希望我的解决scheme能够与WSS 3.0和SharePoint 2010 Foundation合作。
我考虑手动更新数据库表,但我想坚持支持的方法。
这应该为你解决。 它必须以sharepoint admin的身份运行。 在过去,我发现这在任何情况下都不起作用,有时候,开发人员不得不手动修复用户。
stsadm.exe -o migrateuser -oldlogin -newlogin [-ignoresidhistory]
当我尝试下面的命令
stsadm.exe -o migrateuser -oldlogin域名\旧用户名-newlogin域名\新用户名-ignoresidhistory
我收到了同样的错误:
“值不能为空。参数名称:userProfileApplicationProxy”
但是,如果我忽略了这个错误并进行了testing,那就是成功的