tela de login - ajuda
03/10/2012
0
Srs(a). antes de mais nada agradeço a atenção de todos.
Não sou programador, sou da área de suporte e infra. Entendo um pouco de ms-dos e vbscript...até hoje atendeu minhas necessidades.
Hoje tenho uma necessidade específica que o ms-dos e o vbscript não está atendendo em 100% esta necessidade. Por isso recorri ao C#
Fui atraz de algum conhecimento nesta linguagem e cheguei ate aqui:
Crei um WindowsForm em C# onde o mesmo tem como objetivo recuperar login e senha de domínio de usuários específicos para atravez desta efetuar mapeamentos de rede. Após o usuário digitar seu login e senha e clicar no botão "OK" este deve chamar um vbscript que contém os mapeamentos necessários para cada usuário, porém o login e senha do usuário que foi capturado pelo windowsform deve ser passado para o vbscript utilizar na autenticação do usuário.
Pq de td isso? tudo pq o "inputbox" do vbscript não mascara a senha do usuário. Segue o codigo que com a ajuda do visual studio eu crei:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MapNetworkDrive
{
public partial class NetworkCredential : Form
{
public NetworkCredential()
{
InitializeComponent();
}
private void button1Sair_Click(object sender, EventArgs e)
{
this.Close();
}
private void button1Ok_Click(object sender, EventArgs e)
{
aqui é o botão "OK", quando o usuário clicar neste botão, este deve chamar o vbscript com os mapeamentos de rede e passar as informações recuperadas na tela de login C# para o vbscript
}
private void textBox1Senha_TextChanged(object sender, EventArgs e)
{
aqui o usuário digita a sua senha de rede. Já esta mascarada pela propriedade "UseSystemPasswordChar"
não precisa ser criptografada.
}
private void textBox1Usuario_TextChanged(object sender, EventArgs e)
{
aqui o usuário digita seu login de dominio.
}
}
}
se alguém puder me ajudar, eu agradeço!
abç a todos
Ivan Silva
Posts
03/10/2012
Joel Rodrigues
Para executar um arquivo externo você pode usar o método Process.Start("nomearquivo").
Seria isso?
03/10/2012
Joel Rodrigues
Para executar um arquivo externo você pode usar o método Process.Start("nomearquivo").
Seria isso?
03/10/2012
Ivan Silva
Seria isso sim.
Veja o script abaixo, o inputbox captura usuário e senha através das variaveis "strUsr" e "strPas" e na ultima linha é passado para o objNetwork.MapNetworkDrive as variáveis com os valores correspondentes a login e senha.
Isso me facilita pois tenho que mapear umas 12 unidades de rede de servidores diferentes, sendo assim não preciso digitar as informações de usuário e senha 12 vezes.
Então...gostaria de capturar as informações de login e senha com o C# e depois passar para o objNetwork.MapNetworkDrive no vbscript, não sei se isso é possivel?!?!
Dim objNetwork
Set objNetwork = WScript.CreateObject("WScript.Network")
strUsr = inputbox("DIGITE SEU USUÁRIO")
strPas = inputbox("DIGITE SUA SENHA")
strLocalDrive = "L:"
strRemoteShare = "\\server\share_name"
strUsr = "username"
strPas = "password"
objNetwork.MapNetworkDrive strLocalDrive, strRemoteShare, strUsr, strPas
obrigado.
04/10/2012
Ivan Silva
Consegui evoluir + um pouco. Pelo que pesquisei não vou conseguir passar o valor da variável capturada pelo form do c# para o vbscript, porém consigo incluir codigo vbscript dentro do form no c#. Adicionei uma biblioteca de referencia (Interop.IWshRuntimeLibrary.dll) e adicionei o seguinte codigo:
private void buttonOK_Click(object sender, EventArgs e)
{
string Usr = textBoxUser.Text;
string Pas = textBoxPassword.Text;
IWshRuntimeLibrary.IWshNetwork2.MapNetworkDrive("T:", @"\\server\share", System.Type.Missing, Usr, Pas);
}
Porém não consegui passar as informações do mapeamento para IWshRuntimeLibrary.IWshNetwork2.MapNetworkDrive
no que se refere aos itens [ref object] quando por exemplo eu coloco a variavel "Usr" onde esta armazenado o login do usuáro, ele me retorna uma serie de mensagens de erro:
The best overloaded method match for 'IWshRuntimeLibrary.IWshNetwork.MapNetworkDrive(string, string, ref object, ref object, ref object)' has some invalid arguments
Argument 3 must be passed with the 'ref' keyword
Argument 4: cannot convert from 'string' to 'ref object'
Argument 5: cannot convert from 'string' to 'ref object'
Obrigado pela ajuda
04/10/2012
Joel Rodrigues
04/10/2012
Alisson Santos
04/10/2012
Ivan Silva
realmente não funcionou, continuo recebendo as mesmas mensagens de erro.
grato
22/10/2012
Insper Pesquisa
Já que decidiu optar pelo C#, efetua o mapeamento por ele mesmo, pois creio que será mais fácil.
Clique aqui para fazer login e interagir na Comunidade :)