sharepoint 2010 中获取system账号的真实账号

  在使用sharepoint的时候有的时候需要在后台获取当前登录用户的登录名,一般的时候使用SPContext.Current.Web.CurrentUser就可以了,但是有一个特殊的用“系统账户”,获取它的真实登录名很是问题,获取到的是“域名system”,百度了好长时间都没有找到结果,最开始的时候使用的是UserProfileManager方式获取的,但是用户配置文件同步服务老是出现问题,不得不找其他的办法。

 

Google了一下,查到了一个获取这个用户名的方法,下面列出我使用的两种方式,不知道还有没有更靠谱的方式。

1、HttpContext.Current.User.Identity.Name;

  这个是最简单的方法,具体有没有其他问题,还没有测试过。

2、使用UserProfileManager.

  UserProfileManager myProfile = new UserProfileManager(context);
  UserProfile user = myProfile.GetUserProfile(per.User.sAMAccountName);

  在user对象中就可以获得我们需要的东西。

  这个就比较复杂了,需要引用一些dll

  C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14ISAPIMicrosoft.Office.Server.UserProfiles.dll

  使用UserProfileManager获取的时候还有一些依赖,用户配置文件同步服务必须启动,这个很是问题,因为有好多时候这个服务会出现问题不能启动。

搞定。

原文地址:https://www.cnblogs.com/qiumc/p/4180539.html