none
Runas em C# RRS feed

  • Pergunta

  • Galera, preciso fazer uma autenticação de usuário no c# através do AD.

    Pensei em executar o runas, mas não sei como passar os parâmetros.

    Ex: runas/profile/user:dominio\parâmetro1

    e depois o parâmetro2, que seria a senha

    Os dados serão recebidos em um esquema básico de login e senha, onde a senha será inserida em um 

    TextBox e assim que inseridas o usuário clica em confirmar (Button).

    Desde já agradeço!

    terça-feira, 9 de junho de 2015 20:15

Respostas

  • Você não precisa rodar runas mais... 

    Pode iniciar um Processo com um usuário diferente. 
    http://stackoverflow.com/questions/4624113/start-a-net-process-as-a-different-user

    System.Diagnostics.Process proc = new System.Diagnostics.Process();
    System.Security.SecureString ssPwd = new System.Security.SecureString();
    proc.StartInfo.UseShellExecute = false;
    proc.StartInfo.FileName = "filename";
    proc.StartInfo.Arguments = "args...";
    proc.StartInfo.Domain = "domainname";
    proc.StartInfo.UserName = "username";
    string password = "test";
    for (int x = 0; x < password.Length; x++)
    {
        ssPwd.AppendChar(password[x]);
    }
    proc.StartInfo.Password = ssPwd;
    proc.Start();


    Desenvolvedor de sistemas VB6, ASP, ASP.NET, C#, VB.NET, SQL Server, Oracle e MySql.

    • Sugerido como Resposta Lucio Rogerio SPBanned terça-feira, 9 de junho de 2015 21:46
    • Marcado como Resposta Joique quarta-feira, 10 de junho de 2015 17:23
    terça-feira, 9 de junho de 2015 21:44

Todas as Respostas

  • Lucio, na vdd, me expressei mal.

    A questão é, preciso rodar o runas através do c# e passar o login e senha por parâmetro. 

    terça-feira, 9 de junho de 2015 20:54
  • Você não precisa rodar runas mais... 

    Pode iniciar um Processo com um usuário diferente. 
    http://stackoverflow.com/questions/4624113/start-a-net-process-as-a-different-user

    System.Diagnostics.Process proc = new System.Diagnostics.Process();
    System.Security.SecureString ssPwd = new System.Security.SecureString();
    proc.StartInfo.UseShellExecute = false;
    proc.StartInfo.FileName = "filename";
    proc.StartInfo.Arguments = "args...";
    proc.StartInfo.Domain = "domainname";
    proc.StartInfo.UserName = "username";
    string password = "test";
    for (int x = 0; x < password.Length; x++)
    {
        ssPwd.AppendChar(password[x]);
    }
    proc.StartInfo.Password = ssPwd;
    proc.Start();


    Desenvolvedor de sistemas VB6, ASP, ASP.NET, C#, VB.NET, SQL Server, Oracle e MySql.

    • Sugerido como Resposta Lucio Rogerio SPBanned terça-feira, 9 de junho de 2015 21:46
    • Marcado como Resposta Joique quarta-feira, 10 de junho de 2015 17:23
    terça-feira, 9 de junho de 2015 21:44
  • Boa tarde,

    Pense que o programa a ser executado "Filename" acessa um arquivo da rede, neste caso como utilizar a credencial para acessar o arquivo da rede e não para executar o "exe"?


    sexta-feira, 28 de agosto de 2015 20:09