mirror of
https://gitlab.com/sbrl/GalleryShare.git
synced 2018-06-12 22:45:16 +00:00
Windows: Detect HttpListener privilege error and inform the user.
This commit is contained in:
parent
0926851f05
commit
4bb6a4dcc3
2 changed files with 24 additions and 1 deletions
|
@ -61,7 +61,22 @@ namespace GalleryShare
|
||||||
router.UrlTransformer = GetFullReqestedPath;
|
router.UrlTransformer = GetFullReqestedPath;
|
||||||
Console.WriteLine("done.");
|
Console.WriteLine("done.");
|
||||||
|
|
||||||
server.Start();
|
try
|
||||||
|
{
|
||||||
|
server.Start();
|
||||||
|
}
|
||||||
|
catch(HttpListenerException error)
|
||||||
|
{
|
||||||
|
if (error.Message.Contains("denied") && Environment.OSVersion.Platform == PlatformID.Win32NT && !Utilities.IsAdministrator())
|
||||||
|
{
|
||||||
|
Console.Error.WriteLine("Error starting HttpListener: {0}", error.Message);
|
||||||
|
Console.Error.WriteLine("You are using Windows and have attempted to bind to a non-localhost address, and aren't running GalleryShare as an administrator.");
|
||||||
|
Console.Error.WriteLine("Please restart GalleryShare with administrative privileges in order to bind to this address.");
|
||||||
|
Console.Error.WriteLine("Please see http://stackoverflow.com/questions/4019466/httplistener-access-denied for more information.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw;
|
||||||
|
}
|
||||||
Console.WriteLine("Listening for requests on {0}.", prefix);
|
Console.WriteLine("Listening for requests on {0}.", prefix);
|
||||||
Console.WriteLine("Serving from {0}. Browser url: http://localhost:{1}/", servingDirectory, Port);
|
Console.WriteLine("Serving from {0}. Browser url: http://localhost:{1}/", servingDirectory, Port);
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ using System.Reflection;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net.Mime;
|
using System.Net.Mime;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Security.Principal;
|
||||||
|
|
||||||
namespace GalleryShare
|
namespace GalleryShare
|
||||||
{
|
{
|
||||||
|
@ -58,6 +59,13 @@ namespace GalleryShare
|
||||||
/*responseData.Close();
|
/*responseData.Close();
|
||||||
cycle.Response.Close();*/
|
cycle.Response.Close();*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool IsAdministrator()
|
||||||
|
{
|
||||||
|
var identity = WindowsIdentity.GetCurrent();
|
||||||
|
var principal = new WindowsPrincipal(identity);
|
||||||
|
return principal.IsInRole(WindowsBuiltInRole.Administrator);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue