Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Netzwerkzugriff mit Benutzername und Passwort
T_B__
myCSharp.de - Member



Dabei seit:
Beiträge: 194

Themenstarter:

Netzwerkzugriff mit Benutzername und Passwort

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
joerg.uth
myCSharp.de - Member

Avatar #avatar-2080.jpg


Dabei seit:
Beiträge: 484
Herkunft: Lonnig

beantworten | zitieren | melden

http://msdn2.microsoft.com/de-de/library/system.security.principal.windowsidentity(VS.80).aspx

http://msdn2.microsoft.com/de-de/library/w070t6ka(VS.80).aspx

Jörg
private Nachricht | Beiträge des Benutzers
T_B__
myCSharp.de - Member



Dabei seit:
Beiträge: 194

Themenstarter:

beantworten | zitieren | melden

Wo gibt man da den Benutzername und das Passwort ein?
private Nachricht | Beiträge des Benutzers
Mr. Bart Simpson
myCSharp.de - Member

Avatar #avatar-3273.gif


Dabei seit:
Beiträge: 502
Herkunft: Mittelfranken

beantworten | zitieren | melden

...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...
private Nachricht | Beiträge des Benutzers
Razor
myCSharp.de - Member

Avatar #avatar-2539.jpg


Dabei seit:
Beiträge: 16
Herkunft: Wien

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers