elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 05:19  


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderador: [D4N93R])
| | | |-+  Error Access Control Windows 7
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error Access Control Windows 7  (Leído 529 veces)
Keyen Night


Desconectado Desconectado

Mensajes: 315


Nothing


Ver Perfil
Error Access Control Windows 7
« en: 22 Febrero 2011, 02:11 »

Tengo el siguiente codigo Set de una propiedad que escribi hace tiempo para Windows XP pero no funciona en Windows 7, debe ser por la cantidad de filtros de seguridad que tiene Windows 7.

Código
   Set(ByVal value As Boolean)
 
           Dim _
AccessDirInfo As New DirectoryInfo(Objeto), _
AccessInfo As DirectorySecurity = AccessDirInfo.GetAccessControl
 
           Dim I_S As New List(Of IdentityReference)
 
           For Each x As String In Users()
               I_S.Add(New NTAccount(x))
           Next
 
           For Each I As IdentityReference In I_S
 
               AccessInfo.PurgeAccessRules(I)
               AccessDirInfo.SetAccessControl(AccessInfo) ''ERROR: Intento de realizar una operación no válida.''
 
               If Not value Then
                   AccessInfo.SetAccessRule(New FileSystemAccessRule(I, FileSystemRights.FullControl, AccessControlType.Allow))
                   AccessDirInfo.SetAccessControl(AccessInfo)
               End If
 
           Next
 
           I_S.Clear()
 
       End Set

Donde esta el comentario es la linea del error y el mensaje que lanza, alguien sabe cual es el problema o la manera de solucionarlo. Estoy en Windows 7.


En línea

La Fé Mueve Montañas...
                                    ...De Dinero

[Aporte] Factorización Relativamente Rápida
.mokk.

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Error Access Control Windows 7
« Respuesta #1 en: 22 Febrero 2011, 02:40 »

Intentastes configurando el manifest para que requiera ser administrador ?


En línea

Keyen Night


Desconectado Desconectado

Mensajes: 315


Nothing


Ver Perfil
Re: Error Access Control Windows 7
« Respuesta #2 en: 22 Febrero 2011, 02:59 »

Despues de declarar requireAdministrator no daba el error pero no pasaba nada. Entonces cambie el codigo así, y funciono perfecto (a por cierto el codigo sirve para denegar y dar permisos a todos los usuarios en el Equipo), la parte Get de la propiedad esta en construcción :silbar:

Código
 
 
   Public Function Users() As List(Of String)
 
       Users = New List(Of String)
 
       Try
           Dim x As DirectoryEntry = New DirectoryEntry("WinNT://" + Environment.MachineName)
           Dim y As DirectoryEntry = x.Children.Find("Administradores", "group")
           Dim z As Object = y.Invoke("members", Nothing)
           For Each i As Object In CType(z, IEnumerable)
               Users.Add(New DirectoryEntry(i).Name)
           Next
       Catch ex As Exception
           Return Nothing
       End Try
 
   End Function
 
Set(ByVal value As Boolean)
 
           Dim _
AccessDirInfo As New DirectoryInfo(Objeto), _
AccessInfo As DirectorySecurity = AccessDirInfo.GetAccessControl
 
           Dim I_S As New List(Of IdentityReference)
 
           For Each x As String In Users()
               I_S.Add(New NTAccount(Environment.UserDomainName & "\" & x))
           Next
 
           For Each I As IdentityReference In I_S
 
               AccessInfo.PurgeAccessRules(I)
               AccessDirInfo.SetAccessControl(AccessInfo)
 
               If Not value Then
                   AccessInfo.SetAccessRule(New FileSystemAccessRule(I, FileSystemRights.FullControl, AccessControlType.Allow))
               Else
                   AccessInfo.SetAccessRule(New FileSystemAccessRule(I, FileSystemRights.FullControl, AccessControlType.Deny))
               End If
 
               AccessDirInfo.SetAccessControl(AccessInfo)
 
           Next
 
           I_S.Clear()
 
       End Set

Gracias.
« Última modificación: 22 Febrero 2011, 03:01 por Keyen Night » En línea

La Fé Mueve Montañas...
                                    ...De Dinero

[Aporte] Factorización Relativamente Rápida
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines