/ / Não foi possível acessar os Serviços Remotos do Windows - c #, asp.net, windows-services

Não foi possível acessar os Serviços Remotos do Windows - c #, asp.net, windows-services

Eu tenho um site onde os usuários podem se representar / autenticar em um servidor remoto e controlar serviços específicos do Windows. isto funciona bem se estou executando o projeto localmentemas quando eu publicar o projeto para o Servidor web tendo Servidor IIS Em execução, fornece uma exceção:

Não é possível abrir o Service Control Manager no computador (nome do computador). Esta operação pode exigir outros privilégios.

Meu trabalho:

  1. Uma classe que representa (funciona bem localmente):

    public class ImpersonationUtil
    {
    public static bool Impersonate()
    {
    string logon = "ADMIN";
    string password = "PASS";
    string domain = "THEDOMAIN";
    IntPtr token = IntPtr.Zero;
    IntPtr tokenDuplicate = IntPtr.Zero;
    WindowsImpersonationContext impersonationContext = null;
    
    if (LogonUser(logon, domain, password, 2, 0, ref token) != 0)
    if (DuplicateToken(token, 2, ref tokenDuplicate) != 0)
    impersonationContext = new WindowsIdentity(tokenDuplicate).Impersonate();
    
    return (impersonationContext != null);
    }
    
    [DllImport("advapi32.dll", CharSet = CharSet.Auto)]
    public static extern int LogonUser(string lpszUserName, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
    
    [DllImport("advapi32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)]
    public extern static int DuplicateToken(IntPtr hToken, int impersonationLevel, ref IntPtr hNewToken);
    }
    
  2. Código para conectar-se aos serviços:

        ServiceController controller = new ServiceController("serviceName", "machineAddress");
    var status = controller.Status;
    
  3. Coisas Web.config (para ler e aceitar a representação no servidor web):

    <system.webServer> <validation validateIntegratedModeConfiguration="false"/> </system.webServer>

Qualquer ajuda?

Respostas:

0 para resposta № 1

mudança

if (LogonUser(logon, domain, password, 2, 0, ref token) != 0)

para

if (LogonUser(logon, domain, password, 9, 0, ref token) != 0)

Não testado, mas acho que deve se conectar agora.