在使用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获取的时候还有一些依赖,用户配置文件同步服务必须启动,这个很是问题,因为有好多时候这个服务会出现问题不能启动。
搞定。