Zum Inhalt springen

daytalker

Mitglieder
  • Gesamte Inhalte

    6
  • Benutzer seit

  • Letzter Besuch

  1. kein idee ?
  2. klaro ... hier mal den code : <%@ import Namespace="System.IO" %> <%@ import Namespace="System.Diagnostics" %> <%@ import Namespace="System.Runtime.InteropServices" %> <%@ import Namespace="System.Security.Principal" %> <%@ Page Language="VB" Debug="true"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <link href="css/format.css" rel="styleSheet" type="text/css" /> <title>ASP.NET Testseite</title> <!-- VB.Net für die dynamischen Funktionen, hat nix mit JS zu tun --> <script language="vb" runat="server"> '############################################################################## '############################################################################## ' ' unmanaged CODE ' '********************** #Region "API Structures / Enums" Const GENERIC_ALL As Int32 = &H10000000 Enum TOKEN_TYPE As Integer TokenPrimary = 1 TokenImpersonation = 2 End Enum Enum SECURITY_IMPERSONATION_LEVEL As Integer SecurityAnonymous = 0 SecurityIdentification = 1 SecurityImpersonation = 2 SecurityDelegation = 3 End Enum <StructLayout(LayoutKind.Sequential)> _ Structure STARTUPINFO Dim cb As Int32 Dim lpReserved As String Dim lpDesktop As String Dim lpTitle As String Dim dwX As Int32 Dim dwY As Int32 Dim dwXSize As Int32 Dim dwYSize As Int32 Dim dwXCountChars As Int32 Dim dwYCountChars As Int32 Dim dwFillAttribute As Int32 Dim dwFlags As Int32 Dim wShowWindow As Int16 Dim cbReserved2 As Int16 Dim lpReserved2 As IntPtr Dim hStdInput As IntPtr Dim hStdOutput As IntPtr Dim hStdError As IntPtr End Structure <StructLayout(LayoutKind.Sequential)> _ Structure PROCESS_INFORMATION Dim hProcess As IntPtr Dim hThread As IntPtr Dim dwProcessId As Int32 Dim dwThreadId As Int32 End Structure <StructLayout(LayoutKind.Sequential)> _ Structure SECURITY_ATTRIBUTES Dim nLength As Int32 Dim lpSecurityDescriptor As IntPtr Dim bInheritHandle As Boolean End Structure '-----------------NEU------------------ <StructLayout(LayoutKind.Sequential)> _ Structure PROFILEINFO Dim dwSize As Integer Dim dwFlags As Integer Dim lpUserName As String Dim lpProfilePath As String Dim lpDefaultPath As String Dim lpServerName As String Dim lpPolicyPath As String Dim hProfile As IntPtr End Structure '------------------------------ #End Region '********************** #Region "API Functions" ' CloseHandle Funkion <DllImport("kernel32.dll", EntryPoint:="CloseHandle", SetLastError:=True, _ CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)> _ Public Shared Function CloseHandle(ByVal hObject As IntPtr) As Boolean End Function 'DuplicateTokenEx Funktion <DllImport("advapi32.dll", EntryPoint:="DuplicateTokenEx", SetLastError:=True, _ CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)> _ Public Shared Function DuplicateTokenEx( _ ByVal hExistingToken As IntPtr, _ ByVal dwDesiredAccess As Int32, _ ByRef lpTokenAttributes As SECURITY_ATTRIBUTES, _ ByVal ImpersonationLevel As SECURITY_IMPERSONATION_LEVEL, _ ByVal TokenType As TOKEN_TYPE, _ ByRef phNewToken As IntPtr) As Boolean End Function <DllImport("userenv.dll", EntryPoint:="LoadUserProfileA", SetLastError:=True, _ CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)> _ Public Shared Function LoadUserProfileA(ByVal hToken As Long, _ ByVal lpProfileInfo As PROFILEINFO) As Boolean End Function #End Region '********************** '************************************************************************************************* Public Sub Page_Load(ByVal s As Object, ByVal e As EventArgs) Dim Token As New IntPtr(0) Dim dupToken As New IntPtr(0) Dim bRet As Boolean = False Dim sa As New SECURITY_ATTRIBUTES Dim si As New STARTUPINFO Dim pi As New PROCESS_INFORMATION Dim UserProfile As PROFILEINFO Dim bResult As Boolean Token = WindowsIdentity.GetCurrent().Token Identity.Text &= "<BR>" & WindowsIdentity.GetCurrent().Name.ToString() sa.bInheritHandle = False sa.nLength = Marshal.SizeOf(sa) sa.lpSecurityDescriptor = IntPtr.Zero Token = WindowsIdentity.GetCurrent().Token bRet = DuplicateTokenEx(Token, GENERIC_ALL, sa, SECURITY_IMPERSONATION_LEVEL.SecurityDelegation, _ TOKEN_TYPE.TokenPrimary, dupToken) If (bRet = False) Then Duplicate.Text &= "<BR>DuplicateTokenEx failed with " & Marshal.GetLastWin32Error().ToString() Else Duplicate.Text &= "<BR>DuplicateTokenEx SUCCESS" End If UserProfile = New PROFILEINFO() UserProfile.lpUserName = "RSINT\EICKEL_S_ADMIN" UserProfile.dwSize = Marshal.SizeOf(UserProfile) bResult = LoadUserProfileA(dupToken, UserProfile) If Not bResult Then userPro.Text = "Error loading user profile : " & Marshal.GetLastWin32Error().ToString() Else : userPro.Text = "The handle to the user profile is : " & UserProfile.hProfile.ToString End If bRet = CloseHandle(dupToken) If (bRet = False) Then CloseH.Text &= "<BR>CloseHandle of dupToken failed with " & Marshal.GetLastWin32Error().ToString() Else CloseH.Text &= "<BR>CloseHandle of dupToken SUCCESS" End If '************************************************************************************************* </script> </head> </html> hoffe du kannst mir helfen gruß daytalker
  3. Hi alle zusammen, versuche mich grad mittels VB.NET besagte Funktion aufzurufen, um auf dem Server das Profil eines impersonierten User zu laden. Hat hierbei irgendjemand schon erfahrung und kann mir helfen ? klappt nämlich nich so wie ich das möchte, bekomme immer den Fehler 87, der allerdings lauf MSDN nur auftreten dürfte, wenn "dwSize" von der Strukture nicht auf sizeof(PROFILEINFO) sitzt, oder lpUserName NULL ist. Beides ist bei mir nicht der Fall, trotzdem kommt besagter Fehler. Bitte um hilfe, danke daytalker
  4. Hallo, ich habe mal wieder ein großes Problem, folgendes : ein user/client authorisiert sich am iis server über eine asp.net webanwendung. nun soll er einen prozess genau unter seinem userkonto starten, also mit seinen rights usw ... das klappt auch alles soweit, und jetzt kommt das problem. startet die webanwendung unter dem user kontext (mit CreateProcessAsUser) die cmd.exe oder eine *.bat so geschieht eigentlich gar nichts, die cmd.exe wird wenns hochkommt ne halbe sekunde im taskmanager angezeigt, aber auch nur sporadisch ... also ... bei 100 mal refreshen vll 2 mal oder so ... die kommandos in der *.bat werden natürlich nicht ausgeführt. habe auch shcon aus einer vb application eine exe erstellt, bei der is genau dasselbe (habe das gefühl das hängt mit der cmd.exe zusammen). starte ich eine ander *.exe wie zb die notepad.exe oder eine andere programm exe, wie zb den acrobat reader, funktioniert das ganze ohne weitere probleme ... zuerst konnte ich die cmd.exe überhaupt nicht ausführen (access denied), das berief sich auf ein rechte problem, nach vergabe der rechte hatte das funktioniert, aber eben nur so wie oben beschrieben. aus dem grund habe ich die vermutung dass das weiterhin irgendein rechteproblem ist ... hat jemand eine idee ? wäre sehr dankbar darüber. grüße daytalker
  5. ja, der User soll sich mit seinen daten anmelden, das ist aber nicht das problem, das problem ist, dass nachdem er sich angemeldet hat (das funktioniert) eine applikation, die er auf dem server aufruft, auch unter seinem usernamen ausgeführt wird und nicht unter "network system" btw ... wie meinst du dass "unter User das Template rausnehmen" ? wenn ich einen Applikationspool erstelle und dann unter properties nachschau hab ich keinen reiter user ... bitte um weitere hilfe daytalker
  6. Hi zusammen, erstmal ... hab keine kategorie gefunden in die ich das mit 100% gutem gewissen stecken konnte deshalb isses nun hier ^^ ich habe ein sehr spezifisches Problem und hoffe ihr könnt mir weiterhelfen. Ich habe eine Website mittels ASP.NET geschrieben und betreibe den IIS 6.0. Wenn sich nun ein Client an dem Server anmeldet, und dort eine Aplikation ausführt, so wird diese auf dem Server und den vorgegebenen User Namen wie 'Network Services' ausgeführt. Ich weiß dass man diese mittels dem Aplikation Pool umstelllen kann. Das Problem ist nur dass ich sie dynamisch brauche, d.h. dass die Aplikationen unter dem User Namen laufen, der sich angemeldet hat. ist das möglich? hoffe ihr könnt mir helfen, grüße daytalker

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...