none
Acesso pasta da rede com usuário e senha RRS feed

  • Pergunta

  • Pessoal, qual a forma de passar o usuário e senha ao acessar uma pasta da rede?

     System.IO.StreamReader file =
                        //            new System.IO.StreamReader(@"\\" + data_ip_fall.Rows[i]["IP_"].ToString() + @"\c$\Program Files\Sistemas\qdes\codes\fallback.text@usermy\s_sqlserver,senha@10");

    Desta forma da logon negado, será que pode pelo caracteres especiais no usuario e senha?

    Usuário: usermy\s_sqlserver,

    Senha: senha@10


    Junior Santana

    terça-feira, 29 de outubro de 2019 11:46

Respostas

  • acho que tem ei mano testa esse código

     string address = "ftp://files.000webhost.com/public_html/sitemap.xml";
                var credentials = new NetworkCredential("usuario", "senha");
                using (var client = new WebClient())
                {
                    client.Credentials = credentials;
                    using (var reader = new StreamReader(client.OpenRead(address)))
                    {
                        MessageBox.Show(reader.ReadToEnd());
                    }
                }

    só converte ele para o jeito que você ta usando eu testei ele aqui na ftp e pego mas acho que 

    também pega se você converte do jeito que você ta usando

    • Marcado como Resposta Jr_inc quarta-feira, 30 de outubro de 2019 14:08
    quarta-feira, 30 de outubro de 2019 12:08

Todas as Respostas

  • talvez seja permissão de usuario(escrever e ler) veja este Link ou este similar ao seu problema(logon negado) Link

    espero ter ajudado

    terça-feira, 29 de outubro de 2019 12:50
  • Eu tentei o exemplo e não deu.

    Acredito que possa ser o usuário pode ter a barra \

    como preciso colocar o dominio\usuario

    Ele vê a barra como caminho e vira uma bagunça a url


    Junior Santana

    terça-feira, 29 de outubro de 2019 13:37
  • eu coloquei

    @"\c$\Program Files\Sistemas\qdes\codes\fallback.text@usermy\s_sqlserver,senha@10"

    em uma string

    olha o retorno

    será que ele não ta passando duas barra no final e esse é o problema? já que usermy é parte do usuário

    como você falo Ele vê a barra como caminho e vira uma bagunça a url as do caminho não da nada

    mas se passar isso no login ira dar falha mesmo

    edit: tenta mudar o "\' depois de usermy para "/" ele não duplica pelo que vi

    • Editado Z.s2 terça-feira, 29 de outubro de 2019 14:38 editando
    terça-feira, 29 de outubro de 2019 14:23
  • Tentei mas ele da erro no usuário, mesmo eu dando acesso total para este usuário

    


    Junior Santana

    terça-feira, 29 de outubro de 2019 15:09
  • também acho que isso ta usando credenciais veja esses video Video(windows 7) outro Video(windows 10) (

    vá nas credenciais e mude usermy\s_sqlserver para usermy/s_sqlserver se não ter adiciona usermy/s_sqlserver deve ser isso

    )

    se não pega tenta muda todas barras antes nessa mensagem do catch tava dando logon negado

    • Editado Z.s2 terça-feira, 29 de outubro de 2019 15:44 editando
    terça-feira, 29 de outubro de 2019 15:40
  • Então essa barra é do domínio

    dominio\usuario

    como aqui tem vários domínios, sempre o usurário precisa identificar antes da barra


    Junior Santana

    terça-feira, 29 de outubro de 2019 15:43
  • beleza mas mude essa barra invertida para "/" do usuário nas credenciais e no código

    porque a barra invertida esta duplicando para duas e passa assim

     "usermy\\s_sqlserver"

    se você já mudo para barra normal só no código e não nas credenciais o código ta passando "usermy/s_sqlserver" mas não ta igual as credenciais  "usermy\s_sqlserver" que inda ta com usuário antigo

    acho que é isso

    edit: esse código usa credenciais do windows para login ou não?
    • Editado Z.s2 terça-feira, 29 de outubro de 2019 16:01 editando
    terça-feira, 29 de outubro de 2019 15:51
  • Jr_inc

    to com uma duvida isso é um sistema de login que ler o bloco de notas e vê se o usuário existe

    dentro do bloco de notas e se existir ele continua?

    edit: se for um sistema de login assim tem a probabilidade de não conseguir reconhece como igual

    tipo no fallback.text dentro dele ter

    Usermy\s_sqlserver e no codigo usermy\s_sqlserver ele não iria reconhecer como igual

    geralmente não é reconhecido palavras minúscula e maiúscula mesmo se for iguais tanto na senha como no usuário pode

    acontecer é bom verificar isso também

    • Editado Z.s2 terça-feira, 29 de outubro de 2019 16:52
    terça-feira, 29 de outubro de 2019 16:38
  • É um sistema web que estará hospedado numa da maquinas internas.

    Esse sistema receberá uma lista de IPs para verificar o tamanho deste arquivo que fica compartilhado na rede em cada maquina.

    por isso a necessidade de colocar a barra no usuário

    User: dominio\usuario - Senha:xxxx

    Pelo motivo de ser usuário de outro domínio de onde a pasta está


    Junior Santana

    terça-feira, 29 de outubro de 2019 17:06
  • tipo mas onde ta salva a conta user\senha em sql ou em .txt ainda não usei

    o

    @/Conta para isso no StreamReader assim teria mais noção ou o dominio vem com usuário e senha

    não entendi tipo como funciona a autenticação que você ta fazendo do usuário e da senha onde eles fica

    essas coisas porque eu tava pensando que usava as credenciais do windows /:

    talvez seja isso
    • Editado Z.s2 terça-feira, 29 de outubro de 2019 17:58
    terça-feira, 29 de outubro de 2019 17:57
  • Usuários comum não tem acesso nestas pastas, por isso preciso definir um usuário especifico no código fonte 

    Junior Santana

    terça-feira, 29 de outubro de 2019 18:34
  • uma duvida o usuário ta definido na hospedagem ou só no código fonte?

    terça-feira, 29 de outubro de 2019 18:51
  • Por enquanto no código, que está rodando no VS da minha maquina, não hospedei ainda ISS

    Junior Santana

    terça-feira, 29 de outubro de 2019 18:53
  • tipo assim vamos supor eu queira fazer um login e o único usuário que pode entra será os que ter num

    arquivo de texto exemplo

    ae eu iria criar uma função para ter acesso ao bloco.txt se ele achar isso ae exemplo

    bloco.txt@Z.s2,001 se não encontra eu cancelo a continuação se existir eu do o retorno dos ips

    seria tipo isso vê esses video 

    parte 1 tela de login

    parte 2 tela de login

    outro video acho que o que você ta fazendo é parecido com este

    terça-feira, 29 de outubro de 2019 19:05
  • Z.s2

    Vamos supor que eu queira acessar uma pasta da rede

    Vou no Explorer e digito \\192.168.0.200\Pasta\data\arquivo.txt

    Vai abrir no windows uma tela de login certo?

    Ai nesta tela eu digito meu usuario e senha e acesso a pasta da rede.

    Preciso fazer a mesma coisa, só que no código colocar um usuario master.

    Tipo: FileInfo.User = "xxxx"   FileInfo.Password = "xxxxx"


    Junior Santana

    quarta-feira, 30 de outubro de 2019 11:10
  • então no caso o que você ta fazendo é acesso a ftp

    REALIZAR LEITURA DE UM ARQUIVO (.TXT) EM UM SERVIDOR FTP

    Recomendopara ter o acesso em outro computador seria

    ftp:\\192.168.0.200\Pasta\data\arquivo.txt

    Baixar arquivo em ftp ou fazer uploaddaria para você baixar o arquivo e depois fazer a leitura dele

    seria isso?

    ftp

    private FtpWebRequest CreateFtpWebRequest(string ftpDirectoryPath, string userName, string password, bool keepAlive = false)
            {
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(ftpDirectoryPath));
    
                //Set proxy to null. Under current configuration if this option is not set then the proxy that is used will get an html response from the web content gateway (firewall monitoring system)
                request.Proxy = null;
    
                request.UsePassive = true;
                request.UseBinary = true;
                request.KeepAlive = keepAlive;
    
                request.Credentials = new NetworkCredential(userName, password);
    
                return request;
            }
            private void DownloadFile(string userName, string password, string ftpSourceFilePath, string localDestinationFilePath)
            {
                int bytesRead = 0;
                byte[] buffer = new byte[2048];
    
                FtpWebRequest request = CreateFtpWebRequest(ftpSourceFilePath, userName, password, true);
                request.Method = WebRequestMethods.Ftp.DownloadFile;
    
                Stream reader = request.GetResponse().GetResponseStream();
                FileStream fileStream = new FileStream(localDestinationFilePath, FileMode.Create);
    
                while (true)
                {
                    bytesRead = reader.Read(buffer, 0, buffer.Length);
    
                    if (bytesRead == 0)
                        break;
    
                    fileStream.Write(buffer, 0, bytesRead);
                }
                fileStream.Close();
            }


    Fonte do código


    • Editado Z.s2 quarta-feira, 30 de outubro de 2019 11:33
    quarta-feira, 30 de outubro de 2019 11:22
  • Seria isso mesmo caso a pasta estivesse no Ftp, mas ela está somente compartilhada.


    Junior Santana

    quarta-feira, 30 de outubro de 2019 11:53
  • Não tem NetworkCredential para FileInfo ou algo?

    Junior Santana

    quarta-feira, 30 de outubro de 2019 11:54
  • acho que tem ei mano testa esse código

     string address = "ftp://files.000webhost.com/public_html/sitemap.xml";
                var credentials = new NetworkCredential("usuario", "senha");
                using (var client = new WebClient())
                {
                    client.Credentials = credentials;
                    using (var reader = new StreamReader(client.OpenRead(address)))
                    {
                        MessageBox.Show(reader.ReadToEnd());
                    }
                }

    só converte ele para o jeito que você ta usando eu testei ele aqui na ftp e pego mas acho que 

    também pega se você converte do jeito que você ta usando

    • Marcado como Resposta Jr_inc quarta-feira, 30 de outubro de 2019 14:08
    quarta-feira, 30 de outubro de 2019 12:08
  • Jr_inc,

    Há algum tempo atrás precisei desenvolver uns painéis que consomem dados de arquivos em pastas compartilhadas.

    Pesquisei sobre e achei algo que me atendeu e provavelmente vai servir pra você também.

    C# - Accessing Remote File By Using Impersonation


    Antero Marques
    _______________________________________________________________________________
    Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta. O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.


    quarta-feira, 30 de outubro de 2019 12:17
  • Vou tentar. Valeu

    Junior Santana

    quarta-feira, 30 de outubro de 2019 12:38
  • Vou testar

    Junior Santana

    quarta-feira, 30 de outubro de 2019 13:08
  •  for (int i = 0; i < data_ip_fall.Rows.Count; i++)
                        {
                            if (data_ip_fall.Rows[i]["TIPO"].ToString() == "TR")
                            {
                                string caminho = @"\\" + data_ip_fall.Rows[i]["IP"].ToString() + @"\c$\Program Files\Sistema \Cabine\Queues\fallback.sqlite3";
                            
                                var credentials = new NetworkCredential(@"dominio\s_sqlserver", "xxxx");
                                using (var client = new WebClient())
                                {
                                    client.Credentials = credentials;

                                    using (var reader = new StreamReader(client.OpenRead(caminho)))
                                    {
                                        string tamanho = reader.BaseStream.Length.ToString();
                                        reader.Close();
                                    }                                
                                }
                            }
                        }

    Junior Santana

    quarta-feira, 30 de outubro de 2019 13:48
  • conseguiu?
    quarta-feira, 30 de outubro de 2019 13:50
  • Deu certo. Valeuuuuu

    Junior Santana

    quarta-feira, 30 de outubro de 2019 14:08
  • boa Jr_inc
    quarta-feira, 30 de outubro de 2019 14:26