Advertisement
Guest User

Untitled

a guest
Feb 17th, 2017
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.60 KB | None | 0 0
  1. [WebMethod]
  2. public static string ChkLDAP(string Username, string Password)
  3. {
  4. InizializzaLdap();
  5. string rst = "";
  6. string sesso = "";
  7. string adm = "";
  8. string searchString = psearchString;
  9. string param = pparam;
  10. bool trovato = false;
  11. //string tmpUser, tmpPass;
  12.  
  13. SearchRequest searchRequest = null;
  14. SearchResponse searchResponse = null;
  15. LdapConnection connection = null;
  16. //LDAP disattivo
  17. if ((!auth.Equals("si")) && (!auth.Equals("true")))
  18. {
  19. string rsout = ChkAdmin(Username, Password);
  20. return rsout;
  21. }
  22. //LDAP attivo
  23. for (int i = 0; i < ldap.Count; i++)
  24. {
  25. if (ldap[i].InnerText.Length > 0)
  26. {
  27. NetworkCredential credential = new NetworkCredential(Username, Password);
  28. LdapDirectoryIdentifier serverId = new LdapDirectoryIdentifier(ldap[i].InnerText);
  29. connection = new LdapConnection(serverId, credential);
  30. //connection.AuthType = AuthType.;
  31. //Uso LDAP semplice
  32. if ((!pauthOpen.Equals("si")) && (!pauthOpen.Equals("true")))
  33. {
  34. try {
  35. connection.Bind();
  36. trovato = true;
  37. }
  38. catch (Exception exc)
  39. {
  40. if (i == ldap.Count - 1)
  41. {
  42. string rsout = ChkAdmin(Username, Password);
  43. return rsout;
  44. }
  45. else continue;
  46. }
  47.  
  48. adm = "\"admin\":" + ChkAdmin(Username, Password);
  49. break;
  50. }
  51. //Uso LDAP open
  52. else
  53. {
  54. searchRequest = new SearchRequest(
  55. searchString, (string)null, System.DirectoryServices.Protocols.SearchScope.Subtree, (string[])null);
  56.  
  57. try
  58. {
  59.  
  60. searchResponse = (SearchResponse)connection.SendRequest(searchRequest);
  61. foreach (SearchResultEntry entry in searchResponse.Entries)
  62. {
  63. String[] substrings = entry.DistinguishedName.Split(',');
  64. if (substrings[0].Equals(param + "=" + Username) || substrings[0].Equals("CN=" + Username))
  65. {
  66. trovato = true;
  67. break;
  68. }
  69. }
  70.  
  71.  
  72. }
  73. catch (Exception exc)
  74. {
  75. if (i == ldap.Count - 1)
  76. {
  77. //return (exc.Message);
  78. string rsout = ChkAdmin(Username, Password);
  79. return rsout;
  80. }
  81. else continue;
  82. }
  83.  
  84. adm = "\"admin\":" + ChkAdmin(Username, Password);
  85. break;
  86. }
  87. }
  88. else continue;
  89. }
  90. if (trovato == false)
  91. {
  92. string rsout = "{\"users\":\"\"";
  93. rsout += "," + adm + "}";
  94. //con.Close();
  95. return rsout;
  96. }
  97. SqlConnection con = new SqlConnection(conndb);
  98. con.Open();
  99. string sql = "SELECT A.ENTE,A.NOME,A.COGNOME,A.CODFISC,A.WEBUSER,A.WEBPASSWORD,A.POSIZIONE,A.WEBACCESS,A.SESSO,E.DENOMINAZIONE FROM ANAGDIP A INNER JOIN ENTI E ON A.ENTE = E.CODICE WHERE A.UTENTELDAP = @Username";
  100. SqlCommand cmd = new SqlCommand(sql, con);
  101. cmd.Parameters.AddWithValue("Username", Username);
  102. SqlDataReader dr = cmd.ExecuteReader();
  103. DataTable dt = new DataTable();
  104. dt.Load(dr);
  105. if (dt.Rows.Count > 0)
  106. {
  107. for (int j = 0; j < dt.Rows.Count; j++)
  108. {
  109. for (int k = 0; k < dt.Rows.Count; k++)
  110. {
  111. if (!(dt.Rows[k]["CODFISC"].Equals(dt.Rows[j]["CODFISC"])))
  112. {
  113. rst = "3";
  114. string rsout = "{\"result\":\"" + rst + "\"}";
  115. con.Close();
  116. return rsout;
  117. }
  118. }
  119. }
  120.  
  121. string rs = "{\"users\":[";
  122. rst = "0";
  123. foreach (DataRow row in dt.Rows)
  124. {
  125. if (row["WEBACCESS"].ToString() == "0")
  126. {
  127. continue;
  128. }
  129. if (getCodContr(row["ENTE"].ToString()) == false)
  130. {
  131. continue;
  132. }
  133. if (row["POSIZIONE"].ToString() == "99")
  134. {
  135. continue;
  136. }
  137. if (!rs.Equals("{\"users\":["))
  138. {
  139. rs += ",";
  140. }
  141. if (row["SESSO"].ToString() == "1") { sesso = "a"; }
  142. else if (row["SESSO"].ToString() == "0") { sesso = "o"; }
  143.  
  144. rs += "{\"result\":\"" + rst + "\", \"NOME\":\"" + row["NOME"].ToString().Replace("\"", "\\\"") + "\", \"COGNOME\":\"" + row["COGNOME"].ToString().Replace("\"", "\\\"") + "\", \"CODFISC\":\"" + row["CODFISC"].ToString().Replace("\"", "\\\"") + "\", \"WEBUSER\":\"" + row["WEBUSER"].ToString().Replace("\"", "\\\"") + "\", \"WEBPASSWORD\":\"" + KDeCripta(row["WEBPASSWORD"].ToString().Replace("\"", "\\\"")) + "\", \"SESSO\":\"" + sesso + "\", \"DENOMINAZIONE\":\"" + row["DENOMINAZIONE"].ToString().Replace("\"", "\\\"") + "\", \"ENTE\":\"" + row["ENTE"].ToString().Replace("\"", "\\\"") + "\"}";
  145. }
  146. rs += "],";
  147. rs += adm + "}";
  148. rst = "0";
  149. con.Close();
  150. return rs;
  151. }
  152. /* else
  153. {
  154. string ldapUser = dt.Rows[0]["WEBUSER"].ToString();
  155. string ldapPass = KDeCripta(dt.Rows[0]["WEBPASSWORD"].ToString());
  156.  
  157. string rsout = "{\"users\":" + ChkUser(ldapUser, ldapPass, false);
  158. rsout += "," + adm + "}";
  159. con.Close();
  160. return rsout;
  161. //if (!String.IsNullOrEmpty(rsout))
  162. //{
  163. // rst = "0";
  164. // con.Close();
  165. // return rsout;
  166. //}
  167. //else
  168. //{
  169. // rst = "1";
  170. // string rs3 = "{\"result\":\"" + rst + "\"}";
  171. // con.Close();
  172. // return (rs3);
  173. //}
  174. }
  175. */
  176. else
  177. {
  178. //rst = "1";
  179. //string rs3 = "{\"result\":\"" + rst + "\"}";
  180. //con.Close();
  181. //return (rs3);
  182. string rsout = "{\"users\":\"\"";
  183. rsout += "," + adm + "}";
  184. con.Close();
  185. return rsout;
  186. }
  187.  
  188. //object connected = null;
  189.  
  190. //DirectoryEntry root = new DirectoryEntry("aLDAP://pgmserver", Username, Password);
  191.  
  192. //try
  193. //{
  194. // connected = root.NativeObject;
  195. //}
  196. //catch (Exception ex)
  197. //{
  198. // string rsout = ChkAdmin(Username, Password);
  199. // return rsout;
  200. //}
  201.  
  202. //SqlConnection con = new SqlConnection(conndb);
  203. //con.Open();
  204. //string sql = "SELECT WEBUSER,WEBPASSWORD FROM ANAGDIP WHERE UTENTELDAP = " + Username;
  205. //SqlCommand cmd = new SqlCommand(sql, con);
  206. //cmd.Parameters.AddWithValue("Username", Username);
  207. //SqlDataReader dr = cmd.ExecuteReader();
  208.  
  209. //// Admin presente
  210. //if (dr.HasRows == true)
  211. //{
  212. // dr.Read();
  213. // string ldapUser = dr["WEBUSER"].ToString();
  214. // string ldapPass = dr["WEBPASSWORD"].ToString();
  215.  
  216. // string rsout = ChkUser(ldapUser, ldapPass);
  217. // if (!String.IsNullOrEmpty(rsout))
  218. // {
  219. // rst = "0";
  220. // return rsout;
  221. // }
  222. // else
  223. // {
  224. // rst = "1";
  225. // string rs3 = "{\"result\":\"" + rst + "\"}";
  226. // con.Close();
  227. // return (rs3);
  228. // }
  229. //}
  230. //else
  231. //{
  232. // rst = "1";
  233. // string rs3 = "{\"result\":\"" + rst + "\"}";
  234. // con.Close();
  235. // return (rs3);
  236. //}
  237. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement