Laden...

Netzwerkzugriff mit Benutzername und Passwort

Erstellt von T_B__ vor 17 Jahren Letzter Beitrag vor 16 Jahren 5.896 Views
T
T_B__ Themenstarter:in
194 Beiträge seit 2006
vor 17 Jahren
Netzwerkzugriff mit Benutzername und Passwort

Hallo,

Mein Programm soll Dateien in einem geschützten Netzwerkverzeichnis lesen und schreiben können.
Es soll sich mit dem gegebenen Benutzername und dem Passwort authorisieren, um Zugriff auf das Verzeichnis zu bekommen.

Wie muss ich vorgehen?

T
T_B__ Themenstarter:in
194 Beiträge seit 2006
vor 17 Jahren

Wo gibt man da den Benutzername und das Passwort ein?

502 Beiträge seit 2004
vor 17 Jahren

...Es geht auch ohne Impersonation.
Suchst Du nach sowas in der Art?

private void ApplyUserCredentials(string Share, string Domain, string Username, string Password)
        {
            USE_INFO_2 useInfo = new USE_INFO_2();
            useInfo.ui2_local = string.Empty;
            useInfo.ui2_remote = Share;
            useInfo.ui2_password = Password;
            useInfo.ui2_asg_type = 0;    //disk drive
            useInfo.ui2_usecount = 1;
            useInfo.ui2_username = Username;
            useInfo.ui2_domainname = Domain;            
            uint paramErrorIndex;

            uint returnCode = NetUseAdd(null, 2, ref useInfo, out paramErrorIndex);
            if (returnCode != 0)
            {
                throw new Win32Exception((int)returnCode);
            }
        }
        
        [DllImport("NetApi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        private static extern UInt32 NetUseAdd(string UncServerName,UInt32 Level, ref USE_INFO_2 Buf,  out UInt32 ParmError);

        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
        private struct USE_INFO_2
        {
            internal string ui2_local;
            internal string ui2_remote;
            internal string ui2_password;
            internal UInt32 ui2_status;
            internal UInt32 ui2_asg_type;
            internal UInt32 ui2_refcount;
            internal UInt32 ui2_usecount;
            internal string ui2_username;
            internal string ui2_domainname;
        }

Bart Simpson

Praxis ist wenn alles funktioniert und keiner weiss warum.
Theorie ist wenn man alles weiss, aber nichts funktioniert.

Bei uns wird Theorie und Praxis vereint: Nichts funktioniert und keiner weiss warum...

16 Beiträge seit 2008
vor 16 Jahren

Hallo Mr. Bart Simpson!

Habe mir heute mal deinen NetUseAdd Code angeschaut. Er funktioniert. Ich kann somit die Verbindung zu meinem Server aufbauen sprich die Authentifizierung und danach die Dateien oder ähnliches auslesen, z.B. welche Daten auf c$ liegen.

Wollte nur mal Danke sagen.