Guest User

Untitled

a guest
Nov 11th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.26 KB | None | 0 0
  1. namespace WIFI
  2. {
  3. public class Program
  4. {
  5. private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  6.  
  7. [STAThread]
  8. static void Main()
  9. {
  10. Application.EnableVisualStyles();
  11. Application.SetCompatibleTextRenderingDefault(false);
  12.  
  13. Application.Run(new myForm());
  14. }
  15.  
  16. public static String ProcessInput(string user)
  17. {
  18. GlobalVar.hasError = false;
  19. GlobalVar.status = "";
  20.  
  21. if (user.Length < 5 || user.Length > 10)
  22. {
  23. GlobalVar.status = "Username ungültig";
  24. GlobalVar.hasError = true;
  25. }
  26. else
  27. {
  28. WLCconnection WLC = new WLCconnection();
  29. WLC.ConnectWLC();
  30.  
  31. if (!GlobalVar.hasError) WLC.UserExists(user);
  32.  
  33. if (!GlobalVar.hasError) WLC.CreateUser(user);
  34.  
  35. WLC.CloseWLC();
  36. }
  37.  
  38. return GlobalVar.status;
  39. }
  40. }
  41.  
  42. public static class GlobalVar
  43. {
  44. public static Boolean hasError;
  45. public static String status;
  46. }
  47.  
  48. public class WLCconnection
  49. {
  50. Process terminal = new Process();
  51. StringBuilder terminalOutput = new StringBuilder();
  52.  
  53. Boolean telnet = Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["telnet"]);
  54. String WLChostname = System.Configuration.ConfigurationManager.AppSettings["WLChostname"];
  55. String WLCusername = System.Configuration.ConfigurationManager.AppSettings["WLCusername"];
  56. String WLCpassword = System.Configuration.ConfigurationManager.AppSettings["WLCpassword"];
  57.  
  58. public void ConnectWLC()
  59. {
  60. terminal.StartInfo.FileName = @System.Configuration.ConfigurationManager.AppSettings["plinkpath"];
  61. terminal.StartInfo.UseShellExecute = false;
  62. terminal.StartInfo.RedirectStandardInput = true;
  63. terminal.StartInfo.RedirectStandardOutput = true;
  64. terminal.StartInfo.RedirectStandardError = true;
  65. terminal.StartInfo.CreateNoWindow = true;
  66.  
  67. if (telnet) terminal.StartInfo.Arguments = "-telnet " + WLChostname;
  68. else terminal.StartInfo.Arguments = "-ssh " + WLChostname;
  69.  
  70. terminal.OutputDataReceived += (s, e) => terminalOutput.Append(e.Data);
  71. //terminal.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
  72. terminal.ErrorDataReceived += (s, e) => terminalOutput.Append(e.Data);
  73. //terminal.ErrorDataReceived += new DataReceivedEventHandler(OutputHandler);
  74.  
  75. terminal.Start();
  76. terminal.BeginOutputReadLine();
  77. terminal.BeginErrorReadLine();
  78.  
  79. int runs = 0;
  80. if (!telnet)
  81. {
  82. while (!terminalOutput.ToString().Contains("login as:") && !GlobalVar.hasError)
  83. {
  84. Thread.Sleep(500);
  85. if (runs < 20) runs++;
  86. else GlobalVar.hasError = true;
  87. }
  88. terminal.StandardInput.Write("workaroundSSHproblemn");
  89. }
  90.  
  91. runs = 0;
  92. while (!terminalOutput.ToString().Contains("User:") && !GlobalVar.hasError)
  93. {
  94. Thread.Sleep(500);
  95. if (runs < 20) runs++;
  96. else GlobalVar.hasError = true;
  97. }
  98. terminal.StandardInput.Write(WLCusername + "n");
  99.  
  100. runs = 0;
  101. while (!terminalOutput.ToString().Contains("Password:") && !GlobalVar.hasError)
  102. {
  103. Thread.Sleep(500);
  104. if (runs < 20) runs++;
  105. else GlobalVar.hasError = true;
  106. }
  107. terminal.StandardInput.Write(WLCpassword + "n");
  108. }
  109.  
  110. public void CloseWLC()
  111. {
  112. terminal.StandardInput.WriteLine("logout");
  113. terminal.WaitForExit();
  114. terminal.CancelOutputRead();
  115. terminal.Close();
  116. terminal.Dispose();
  117. }
  118.  
  119. public Boolean UserExists(String user)
  120. {
  121. int runs = 0;
  122. while (!terminalOutput.ToString().Contains("(Cisco Controller) >") && !GlobalVar.hasError)
  123. {
  124. Thread.Sleep(500);
  125. if (runs < 20) runs++;
  126. else GlobalVar.hasError = true;
  127. }
  128. terminal.StandardInput.Write("show netuser detail " + user);
  129.  
  130. if (!terminalOutput.ToString().Contains("blabla"))
  131. {
  132. GlobalVar.status = "User " + user + " bereits aktiviert";
  133. GlobalVar.hasError = true;
  134. }
  135.  
  136. return GlobalVar.hasError;
  137. }
  138.  
  139. public void CreateUser(String user)
  140. {
  141. int runs = 0;
  142. while (!terminalOutput.ToString().Contains("(Cisco Controller) >") && !GlobalVar.hasError)
  143. {
  144. Thread.Sleep(500);
  145. if (runs < 20) runs++;
  146. else GlobalVar.hasError = true;
  147. }
  148. terminal.StandardInput.Write("config netuser add " + user + " " + System.Configuration.ConfigurationManager.AppSettings["guestpassword"] + " wlan 3 userType guest lifetime 86400");
  149.  
  150. if (!GlobalVar.hasError)
  151. {
  152. if (UserExists(user))
  153. {
  154. GlobalVar.status = "";
  155. GlobalVar.hasError = false;
  156. }
  157. else
  158. {
  159. GlobalVar.status = "User " + user + " konnte nicht aktiviert werden";
  160. GlobalVar.hasError = true;
  161. }
  162.  
  163. }
  164. }
  165.  
  166. protected void OutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
  167. {
  168. terminalOutput.Append(outLine.Data);
  169. }
  170. }
  171. }
Add Comment
Please, Sign In to add comment