Re: impersonate user in windows forms



nice...

but he give the error that he can't find the specified modules... but when i
look they are in the folder specified...

<DllImport("C:\\WINNT\system32\\ADVAPI32.DLL")>

but the file does exist. any ideas?

thxs in advance



"scorpion53061" <scorpion_53061@xxxxxxxxxxxxxxxxxxx> wrote in message
news:%235MFBfJUFHA.840@xxxxxxxxxxxxxxxxxxxxxxx
> The following example demonstrates how to impersonate a user and then
> revert
> to the original identity.
> [Visual Basic]
> Imports System
> Imports System.Runtime.InteropServices
> Imports System.Security.Principal
> Imports System.Security.Permissions
>
> <Assembly:SecurityPermissionAttribute(SecurityAction.RequestMinimum,
> UnmanagedCode := true)>
> Public Class Impersonation
>
> <DllImport("C:\\WINNT\\System32\\advapi32.dll")> _
> Public Shared Function LogonUser(lpszUsername As String, lpszDomain As
> String, lpszPassword As String, _
> dwLogonType As Integer, dwLogonProvider As Integer, ByRef
> phToken As Integer) As Boolean
> End Function
>
> <DllImport("C:\\WINNT\\System32\\Kernel32.dll")> _
> Public Shared Function GetLastError() As Integer
> End Function
>
> Public Shared Sub Main(args() As String)
>
> 'The Windows NT user token.
> Dim token1 As Integer
>
> 'Get the user token for the specified user, machine, and password
> using the unmanaged LogonUser method.
>
> 'The parameters for LogonUser are the user name, computer name,
> password,
> 'Logon type (LOGON32_LOGON_NETWORK_CLEARTEXT), Logon provider
> (LOGON32_PROVIDER_DEFAULT),
> 'and user token.
> Dim loggedOn As Boolean = LogonUser("bob", "AARDVARK", "coffee", 3, 0,
> token1)
> Console.WriteLine("LogonUser called")
>
> 'Call GetLastError to try to determine why logon failed if it did not
> succeed.
> Dim ret As Integer = GetLastError()
>
> Console.WriteLine("LogonUser Success? " + loggedOn)
> Console.WriteLine("NT Token Value: " + token1)
> If ret <> 0 Then
> Console.WriteLine("Error code (126 == ""Specified module could not
> be found""): " + ret)
> End If
>
> 'Starting impersonation here:
> Console.WriteLine("Before impersonation:")
> Dim mWI1 As WindowsIdentity = WindowsIdentity.GetCurrent()
> Console.WriteLine(mWI1.Name)
> Console.WriteLine(mWI1.Token)
>
> Dim token2 As IntPtr = new IntPtr(token1)
>
> Console.WriteLine("New identity created:")
> Dim mWI2 As WindowsIdentity = new WindowsIdentity(token2)
> Console.WriteLine(mWI2.Name)
> Console.WriteLine(mWI2.Token)
>
> 'Impersonate the user.
> Dim mWIC As WindowsImpersonationContext = mWI2.Impersonate()
>
> Console.WriteLine("After impersonation:")
> Dim mWI3 As WindowsIdentity = WindowsIdentity.GetCurrent()
> Console.WriteLine(mWI3.Name)
> Console.WriteLine(mWI3.Token)
>
> 'Revert to previous identity.
> mWIC.Undo()
>
> Console.WriteLine("After impersonation is reverted:")
> Dim mWI4 As WindowsIdentity = WindowsIdentity.GetCurrent()
> Console.WriteLine(mWI4.Name)
> Console.WriteLine(mWI4.Token)
> End Sub
> End Class
>
> "RTT" <RTT@xxxxxxxxxx> wrote in message news:RTT@xxxxxxxxxx:
> > i'm writing a windows form but codebased a iwant to run the code as a
> > different user.
> >
> > like in a webapplication you can impersonate a user so the website does
> > not
> > run on the standard ASP.NET user.
> >
> > is it possible to do the same for a windows form and define a user
> > codebased
> > and run the code like that user is running the application.
>


.



Relevant Pages

  • RE: GetOpen filename to open files(Workbooks)
    ... As I said previously you can't circumvent the windows security protection ... Set FileNameXls = Workbooks.Open(_ ... Dim FileNameXls As Variant ... Dim ShName As String, PathStr As String ...
    (microsoft.public.excel.misc)
  • Re: function PlaySound does not work
    ... You need to use any of several methods to get the Windows directory. ... Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long ... Public Function GetWinDir() As String ... Dim sBuffer As String ...
    (microsoft.public.vb.winapi)
  • Re: RegOpenKeyEx() on 64 bit Windows
    ... I need my VB code to work on 32 bit Windows and 64 bit ... As String) As Long ... Dim hLib As Long ... > Dim sReturn As String ...
    (microsoft.public.win32.programmer.kernel)
  • Re: Impersonate User
    ... > Private Function GetUserDetailsas String ... > Dim arrName() as String ... application or a stand-alone application) am I likely to want to impersonate ... hosting the aspx files get a "Enter Network Password" dialog box when they ...
    (microsoft.public.dotnet.security)
  • Re: A very simple OCX Question for experts
    ... set up for ocxs iand dlls in the App directory and registering them ... > "GetWindowsDirectoryA" (ByVal lpBuffer As String, ... > Dim x As Long ... >> My specific problem is with the Windows Plattform: ...
    (microsoft.public.vb.general.discussion)