| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 | 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="tempDirectory">The temp directory.</param>        public static void AuthorizeServer(int udpPort, int httpServerPort, 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}", udpPort, httpServerPort),                CreateNoWindow = true,                WindowStyle = ProcessWindowStyle.Hidden,                Verb = "runas",                ErrorDialog = false            };            using (var process = Process.Start(startInfo))            {                process.WaitForExit();            }        }    }}
 |