| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | 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();            }        }    }}
 |