1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1510
1510
EMPFEHLEN
-
Halo!
ich arbeite momentan an einen project wo ich auch unter anderen windows login funktion realisieren soll.
gibt es vieleicht eine möglichkeit mit .net (c sharp) in ein dienst loginfunktion zu intergrieren ? fieleicht ein konsole command oder .net methode für automatisazion.
-
Hab gestern eibischen mit Windows SDK gespielt:
Habe folgendes ausgefunden:
mit funktion LogonUser kann man(theoretisch) Windows benutzer auf lokalen PC anmelden
aber dabei habe ich auf folgende problem gestossen - wenn ich folgende code ausfüren lasse(einfache Form mit button) meldet mir programm dass benutzer erfogreich angemeldet ist... in task manager sehe ich aber nur mich selbst als angemeldete user. könnte mir jemand sagen wo lieg das ProblemCode :1 2
[DllImport("advapi32.dll")] public static extern bool LogonUser(string lpszUsername, string lpszDomain, string Password, int dwLogonType, int dwLogonProvider, out int phToken);
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
private void login_Click(object sender, EventArgs e) { string uid = "test",pwd="test"; int token1; if (LogonUser(uid, ".", pwd, 2, 0, out token1)) { System.Windows.Forms.MessageBox.Show("Benutzer login erfolgreich", "", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information); } else { System.Windows.Forms.MessageBox.Show("Benutzer login fehlgeshlagen", "", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information); }
dabei wird ja der paswort und die name überprüft, denn wenn ich falsche angabe mache wird von fehler berichtet
-
20.08.10 10:11 #3
Hi,
was möchtest du den mit diesem angemeldeten Benutzer machen?
Laut der Doku wird dir bei erfolgreicher Anmeldung ein Token des Benutzers zurückgeliefert, mit diesem kannst du dann z. B. Prozesse als dieser Benutzer starten.
Mit Hilfe dieser Funktion kann man für kritische Funktionen z. B. das Admin-Passwort überprüfen lassen und dann ein Programm als "Administrator" starten etc.
Für die "wirkliche" Anmeldung ist diese Funktion nicht geeignet.
Gruß
RudolfGTechnologien
(Gute) Grundkenntnisse: HTML, CSS
Fortgeschrittene-Kenntnisse: C++/Qt, C# (WinForms, Webservice), SQL
-
26.10.10 00:07 #4
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
schau mal hier:
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Principal; using System.Runtime.InteropServices; using System.Security.Permissions; namespace De.Tutorials.Training.Core { class Program { [DllImport("advapi32.dll", SetLastError=true, CharSet = CharSet.Unicode)] public static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken); [DllImport("kernel32.dll", CharSet = CharSet.Auto)] public extern static bool CloseHandle(IntPtr handle); static void Main(string[] args) { WindowsIdentity id = System.Security.Principal.WindowsIdentity.GetCurrent(); Console.WriteLine("CurrentUser: " + id.Name); string username = "foo"; string domain = "box"; string password = "foofoofoo"; IntPtr fooUserToken = IntPtr.Zero; bool logonSuccessfull = LogonUser( username, domain, password, 3, //LOGON32_LOGON_NETWORK 0, //LOGON32_PROVIDER_DEFAULT ref fooUserToken); Console.WriteLine(logonSuccessfull); using (WindowsIdentity identity = new WindowsIdentity(fooUserToken)) { CloseHandle(fooUserToken); Console.WriteLine("New Identity: " + identity.Name); using (WindowsImpersonationContext impersonation = identity.Impersonate()) { id = System.Security.Principal.WindowsIdentity.GetCurrent(); Console.WriteLine("CurrentUser: " + id.Name); Console.WriteLine("Leaving impersonated user... on dispose"); } id = System.Security.Principal.WindowsIdentity.GetCurrent(); Console.WriteLine("CurrentUser: " + id.Name); } } } }
Ausgabe:
Code :1 2 3 4 5 6 7
CurrentUser: box\tom True New Identity: box\foo CurrentUser: box\foo Leaving impersonated user... on dispose CurrentUser: box\tom Drücken Sie eine beliebige Taste . . .
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
Ähnliche Themen
-
HttpClient:Automatische Anmeldung
Von HichamId im Forum JavaAntworten: 3Letzter Beitrag: 01.09.08, 10:39 -
Erfahrungen mit XP Sysprep Automatische Anmeldung und 2 LAN Adapter
Von lin4ever im Forum Microsoft WindowsAntworten: 0Letzter Beitrag: 29.11.07, 08:16 -
Automatische Interneteinwahl vor Anmeldung Win2k
Von ZidaneIX im Forum Microsoft WindowsAntworten: 1Letzter Beitrag: 07.09.04, 07:21 -
Automatische Anmeldung unter SuSE 8.2
Von alexdoehla im Forum Linux & UnixAntworten: 4Letzter Beitrag: 23.02.04, 12:07 -
Anmeldung mit VB
Von ShinmA im Forum Visual Basic 6.0Antworten: 5Letzter Beitrag: 06.08.03, 14:33





Zitieren

Login





