如何从 LDAP 或 Azure AD 获取用户详细信息

时间:2021-04-27 08:30:16

标签: json asp.net-core ldap azure-web-app-service

一个应用程序,它通过调用 Web 服务 API 来获取用户详细信息。但是,该 Web 服务最近停止/停用。

实现获取用户详细信息的方式,如下所示:

  [httpGet]
  Public WebServiceResponse GetUserInfo(string ID);
    {
       try
          {
             return 
                UsrMgr.GetTheUsersbyWS(ID,AuthorizationHeaderKey,AuthorizationHeaderValue,SearchURL);
          }
       Catch(Exception Ex)
          {
           }
    }

“GetTheUsersbyWS”定义为:

  public WebServiceResponse GetTheUsersbyWS (string Id, string key, string val, string url)
  {
    //code lines
     return JsonConvert.DeserializeObject<WebServiceResponse>(result);
  }

     

“WebServiceResponse”类如下:

   public class WebServiceResponse
       {
         public string id {get;set;}
         public string email {get;set;}
         public string cn {get;set;}
         public string role {get;set;}
         public string anyerror {get;set;}
       }

“UsrMgr”是一个属性。

考虑到退役,下面是我尝试实施 LDAP 的方式。

 [httpGet]
  Public WebServiceResponse GetUserInfo(string ID);
    {
       try
          {
             return 
                UsrMgr.GetTheUsers(ID);
          }
       Catch(Exception Ex)
          {
           }
    }

这是“GetTheUsers”方法定义。

public WebServiceResponse GetTheUsers(string id)
 {
   string ldaphost = "localhost";
   int ldapport = 123;
   string ldapcredential = "the required details"
   string ldappass = "The password"
   LdapEntry nextEntry = null;
   LdapSearchresults result = null;
   try
     {
        LdapConnection lconn = new LdapConnection();
        string requiredattributes = {"id","email","cn","role"};
        lconn.Connect(ldaphost ,ldapport);
        lconn.Bind(ldapcredential ,ldappass );
        result = (LdapSearchresults)lconn.Search(param1,param2,param3,param4,param5);
        nextEntry = result.next(); //Getting data from LDAP - OK.
        lconn.Disconnect();
     }
     catch(LdapException e)
      {
           //message
      }
   return JsonConvert.DeserializeObject<WebServiceResponse>(nextEntry.ToString()); // Here is the problem
 }

为从 LDAP 获取详细信息而编写的新方法“GetTheUsers”正在获取所需数据,但是会向调用方法抛出异常。所以“return”语句有问题。

有人遇到过这样的问题吗?任何解决问题的线索/解决方案? - 可能是通过更改返回语句而不更改调用方法。

应用程序是 .net 核心并托管在 Azure 应用程序服务中。第二,有什么方法可以从 Azure AD 获取用户详细信息?如果是,执行此操作的步骤是什么?

任何一种方式; ( LDAP 或从 Azure AD 获取详细信息)会有所帮助。谢谢。

0 个答案:

没有答案