mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-10-31 10:37:22 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Diagnostics;
 | |
| using System.IO;
 | |
| using System.Reflection;
 | |
| 
 | |
| namespace MediaBrowser.ServerApplication.Native
 | |
| {
 | |
|     /// <summary>
 | |
|     /// Class Authorization
 | |
|     /// </summary>
 | |
|     public static class ServerAuthorization
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// Authorizes the server.
 | |
|         /// </summary>
 | |
|         /// <param name="udpPort">The UDP port.</param>
 | |
|         /// <param name="httpServerPort">The HTTP server port.</param>
 | |
|         /// <param name="httpsServerPort">The HTTPS server port.</param>
 | |
|         /// <param name="tempDirectory">The temp directory.</param>
 | |
|         public static void AuthorizeServer(int udpPort, int httpServerPort, int httpsServerPort, string applicationPath, string tempDirectory)
 | |
|         {
 | |
|             Directory.CreateDirectory(tempDirectory);
 | |
| 
 | |
|             // Create a temp file path to extract the bat file to
 | |
|             var tmpFile = Path.Combine(tempDirectory, Guid.NewGuid() + ".bat");
 | |
| 
 | |
|             // Extract the bat file
 | |
|             using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(typeof(ServerAuthorization).Namespace + ".RegisterServer.bat"))
 | |
|             {
 | |
|                 using (var fileStream = File.Create(tmpFile))
 | |
|                 {
 | |
|                     stream.CopyTo(fileStream);
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             var startInfo = new ProcessStartInfo
 | |
|             {
 | |
|                 FileName = tmpFile,
 | |
| 
 | |
|                 Arguments = string.Format("{0} {1} {2} \"{3}\"", udpPort, httpServerPort, httpsServerPort, applicationPath),
 | |
| 
 | |
|                 CreateNoWindow = true,
 | |
|                 WindowStyle = ProcessWindowStyle.Hidden,
 | |
|                 Verb = "runas",
 | |
|                 ErrorDialog = false
 | |
|             };
 | |
| 
 | |
|             using (var process = Process.Start(startInfo))
 | |
|             {
 | |
|                 process.WaitForExit();
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 |