在asp web app中从LDAP获取当前登录用户名

时间:2015-08-31 07:07:00

标签: asp.net ldap

尝试在asp web app中获取客户端的当前登录用户名。

我可以获得这样的用户名

<domain_name>/<user>
CCI\Waqar

但我想以这种格式提取客户名称

Waqar.Ahmed/Technology/Lahore

我可以在Localhost上运行时获取它。但是当我在Web服务器上部署包时,它给了我例外。

以下是我可以使用Localhost的代码。

try
         {
             UserPrincipal userPrincipal = UserPrincipal.Current;
             sUser = userPrincipal.DisplayName;
         }
         catch (Exception ex)
         {
             return ex.Message.ToString();
         }

尝试使用谷歌搜索但没有运气。

1 个答案:

答案 0 :(得分:1)

两件事

  • 域身份验证的典型用户名为domain\login,根据您的示例,不能为xxx / xxx / xxx。您很可能会引用显示名称,和/或部门/位置或用户的其他属性。有关详细信息,请参阅How to get "Company" and "Department" from Active Directory given a UserPrincipal object?
  • 测试和服务器环境之间的区别是由于IIS(或不同的web.config)上使用的不同帐户。检查IIS设置,并尝试使用域上下文,例如

    PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
    UserPrincipal userPrincipal = UserPrincipal.Current;