Samba-Server
-
Hallo,
Bis anhin habe ich einfachere Programme in C, unter Windows, teilweise mit Hilfe der API, meisten jedoch nur mit der Konsole, für den Eigengebrauch geschrieben.
Momentan will ich ein Windows Programm schreiben, das unter anderem Daten von einem Samba Server, auf den ich mit beschränkten Rechten Zugriff habe, lesen und schreiben soll. Leider habe ich keine Ahnung, mit welchen Funktionen ich das bewerkstelligen kann.
Vielen Dank für Alle Antworten
Venilia
PS: Da ich das Programm nicht weitergeben will, ist es kein Problem, wenn das Passwort für die Autorisation beim Samba-Server unverschlüsselt im Code gespeichert wird.
-
Samba-Server = Normales Windows Netzwerk?
Erzeug einfach nen Netzlaufwerk und nutz dann die normalen IO-Funktionen?
-
geeky schrieb:
Samba-Server = Normales Windows Netzwerk?
Erzeug einfach nen Netzlaufwerk und nutz dann die normalen IO-Funktionen?Aber irgendwie muss mein Programm ja dem Server zwecks Autorisierung mein Benutzername und das Passwort mitteilen!
Venilia
PS: Mein Windows-Benutzerkonto ist lokal gespeichert und gehört nicht irgendeiner Domäne an.
-
Nö, wenn du es als Netzwerklaufwerk einbindest, musst du ja deine Anmeldedaten eingeben. Danach kommt man ganz einfach über die normalen I/O-Funktionen dran.
-
WNetAddConnection
WNetAddConnection2
WNetAddConnection3
-
HANDLE userToken = 0; BOOL rc = LogonUser("username", "domain", "password", LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_WINNT50, &userToken); if (rc) rc = ImpersonateLoggedOnUser(userToken);Danach laufen alle Zugriffe auf Netzwerk-Shares etc. (z.B. auch Zugriffe auf SQL Server mit "integrated security") mit den angegebenen Credentials.
Funktioniert netterweise auch wenn man von einem alleinstehenden Rechner auf einen Rechner in einer Domäne mit einem Domänen-Account zugreifen will.
Zugriffe auf lokale Dateien/Verzeichnisse sind davon nicht betroffen und erfolgen nach wie vor unter dem Userkonto mit dem der Prozess läuft.