Como establecer permisos...

30/07/2004 - 13:03 por Sergiou | Informe spam
Hola grupo, tengo una aplicacion asp.net que hace unas llamadas a
archivos .exe internos del sistema, pero me lanza errores de
autentificacion puesto que para usar el exe hay que tener permisos de
administrador, ¿cómo puedo establecerlos en mi aplicacion para la
ejecucion de ese metodo?

Gracias por todo.
 

Leer las respuestas

#1 Sergiou
03/08/2004 - 13:56 | Informe spam
Lo encontré y funciona

<%@ Page Language="VB" %>
<%@ Import Namespace = "System.Web" %>
<%@ Import Namespace = "System.Web.Security" %>
<%@ Import Namespace = "System.Security.Principal" %>
<%@ Import Namespace = "System.Runtime.InteropServices" %>

<script runat=server>
Dim LOGON32_LOGON_INTERACTIVE As Integer = 2
Dim LOGON32_PROVIDER_DEFAULT As Integer = 0

Dim impersonationContext As WindowsImpersonationContext

Declare Auto Function LogonUser Lib "advapi32.dll" (ByVal lpszUsername
As String, _
ByVal lpszDomain As String, _
ByVal lpszPassword As String, _
ByVal dwLogonType As Integer, _
ByVal dwLogonProvider As Integer, _
ByRef phToken As IntPtr) As Integer
Declare Auto Function DuplicateToken Lib "advapi32.dll" _
(ByVal ExistingTokenHandle As IntPtr, _
ImpersonationLevel As Integer, _
ByRef DuplicateTokenHandle As IntPtr) As Integer

Public Sub Page_Load(s As Object, e As EventArgs)
If impersonateValidUser("username", "domain", "password") Then
'Inserta aquí el código que se ejecuta bajo el contexto de
seguridad de un usuario específico.
undoImpersonation()
Else
'Su representación falló. Por tanto, incluya aquí un mecanismo a
prueba de error.
End If
End Sub

Private Function impersonateValidUser(userName As String, _
domain As String, password As String) As Boolean

Dim tempWindowsIdentity As WindowsIdentity
Dim token As IntPtr
Dim tokenDuplicate As IntPtr

If LogonUser(userName, domain, password, LOGON32_LOGON_INTERACTIVE, _
LOGON32_PROVIDER_DEFAULT, token) <> 0 Then
If DuplicateToken(token, 2, tokenDuplicate) <> 0 Then
tempWindowsIdentity = new WindowsIdentity(tokenDuplicate)
impersonationContext = tempWindowsIdentity.Impersonate()
If impersonationContext Is Nothing Then
impersonateValidUser = False
Else
impersonateValidUser = True
End If
Else
impersonateValidUser = False
End If
Else
impersonateValidUser = False
End If
End Function
Private Sub undoImpersonation()
impersonationContext.Undo()
End Sub
</script>

saludos y que os valga

Sergiou wrote:

Hola grupo, tengo una aplicacion asp.net que hace unas llamadas a
archivos .exe internos del sistema, pero me lanza errores de
autentificacion puesto que para usar el exe hay que tener permisos de
administrador, ¿cómo puedo establecerlos en mi aplicacion para la
ejecucion de ese metodo?

Gracias por todo.

Preguntas similares