Autor
|
Tema: "Acceso denegado al Registro solicitado." (System.Security.Security.Exception) (Leído 14,156 veces)
|
.:Weeds:.
Desconectado
Mensajes: 122
|
Estoy intentando acceder a esta clave en concreto y añadir un valor. HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Approved Extensions Por lo que se ve es una zona donde no puedes toquetear tan facilmente. El problema no es de requireAdministrator. He buscado codes por internet y he probado con este. Pero no me deja , alguna idea? Saludos! edito: Este codigo parece mas funcional pero tampoco sirve Dim user As String = Environment.UserDomainName & "\" & Environment.UserName Dim rs As New RegistrySecurity() rs.AddAccessRule(New RegistryAccessRule(user, _ RegistryRights.WriteKey Or RegistryRights.SetValue, _ InheritanceFlags.None, _ PropagationFlags.None, _ AccessControlType.Allow)) ' Create the example key with registry security. Dim rk As RegistryKey rk = Registry.CurrentUser.CreateSubKey("Software\Microsoft\Internet Explorer\Approved Extensions", RegistryKeyPermissionCheck.ReadWriteSubTree, rs) If rk IsNot Nothing Then rk.Close()
El problema esta en los permisos de escritura del regedit, los puedo asignar manualmente pero eso no solucionaria mi problema
|
|
« Última modificación: 20 Julio 2013, 22:48 pm por .:Weeds:. »
|
En línea
|
|
|
|
.:Weeds:.
Desconectado
Mensajes: 122
|
Despues de mucho tocar y aun no se muy bien por que funciona, aqui dejo el code funcional Dim user As String = Environment.UserDomainName & "\" & Environment.UserName Dim subkey As String = "Software\Microsoft\Internet Explorer\Approved Extensions" Dim rk As RegistryKey = Registry.CurrentUser.OpenSubKey(subkey, RegistryKeyPermissionCheck.ReadWriteSubTree, RegistryRights.ChangePermissions Or RegistryRights.ReadKey) Dim rs As New RegistrySecurity() rs.AddAccessRule(New RegistryAccessRule(user, RegistryRights.FullControl, InheritanceFlags.None, PropagationFlags.None, AccessControlType.Allow)) rk.SetAccessControl(rs) rk = Registry.CurrentUser.OpenSubKey(subkey, RegistryKeyPermissionCheck.ReadWriteSubTree, RegistryRights.FullControl) rk.SetAccessControl(rs)
Lo que hace el code es editar los permisos especiales y quitando el dichoso 'denegar establecer valor', ahora bien no se por que pasa esto jaja, alguien me puede comentar el code? Me gustaria entenderlo Saludos.
|
|
« Última modificación: 21 Julio 2013, 00:55 am por .:Weeds:. »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
A pesar de tus esfuerzos el segundo código a mi no me funciona, me da el mismo error que comentas en el primer código. He probado decenas de códigos, he estudiado un poco sobre RegistryKeyPermissionCheck , RegistryRights , SetAccessControl , RegistryAccessRule , y RegistryKey Incluso he probado un código koreano!... pero nada ha valido la pena, parece algo de locos intentar modificar los permisos de una clave en .NET, Google no tiene la respuesta. A mi me habría gustado solucionar tu problema porque también me serviría para mi en un futuro, pero parece muy dificil conseguirlo, así que quizás quieras mirar esta alternativa que hice: -> http://foro.elhacker.net/net/libreria_de_snippets_posteen_aqui_sus_snippets-t378770.0.html;msg1872406#msg1872406Saludos.
|
|
|
En línea
|
|
|
|
.:Weeds:.
Desconectado
Mensajes: 122
|
A mi me funciona que da gusto, hay tres tipos de permisos : Control total, Leer y permisos especiales. En la clave que intentaba modificar tenia los permisos de control total y leer pero el permiso especial de establecer valor denegado. Con este code me permite todos los permisos especiales, voi a testearlo en diferentes sistemas operativos pero en mi ordenador va de lujo.
No te funciona con la clave que yo intento modificar o con una tuya? Este tema me ha tocado las bowlings y hay que llegar al fondo del asunto xD
Saludos.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
He vuelto a testearlo, y ahora me siento identificado con tu segundo comentario: Despues de mucho tocar y aun no se muy bien por que funciona, Me parece muy estraño pero ahora si que me funciona, ayer hice un copy/paste de tu code pero no me funcionó ni con tu clave ni con alguna otra que yo he probé. En fin... disculpas, aunque te aseguro que ayer lo probé muchas veces tu último código sin éxito alguno... un saludo!
|
|
« Última modificación: 21 Julio 2013, 16:18 pm por EleKtro H@cker »
|
En línea
|
|
|
|
.:Weeds:.
Desconectado
Mensajes: 122
|
He vuelto a testearlo, y ahora me siento identificado con tu segundo comentario: Me parece muy estraño pero ahora si que me funciona, ayer hice un copy/paste de tu code pero no me funcionó ni con tu clave ni con alguna otra que yo he probé.
En fin... disculpas, aunque te aseguro que ayer lo probé muchas veces tu último código sin éxito alguno... un saludo!
edite el codigo varias veces tal vez ese fue el fallo, culpa mia en todo caso. pues me dejas mas tranquilo por que ya pensaba que iba a tener problema con el code jaja. saludos.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Una cosa, estaba haciendo ahora mismo una función genérica de tu code: ''' <summary> ''' Modify the User permissions of a registry key. ''' </summary> Public Shared Sub Set_UserAccess_Key(ByVal RegKey As String, ByVal RegUserAccess As RegistryRights, ByVal AccessType As AccessControlType, Optional ByVal UserName As String = Nothing) Dim user As String = UserName Dim RootKey As RegistryKey = Get_Root_Key(RegKey) Dim KeyPath As String = Get_Key_Path(RegKey) If UserName Is Nothing Then user = Environment.UserDomainName & "\" & Environment.UserName Dim RS As New RegistrySecurity() Dim RK As RegistryKey = RootKey.OpenSubKey(KeyPath, RegistryKeyPermissionCheck.ReadWriteSubTree, RegistryRights.ChangePermissions Or RegistryRights.ReadKey) RS.AddAccessRule(New RegistryAccessRule(user, RegUserAccess, InheritanceFlags.None, PropagationFlags.None, AccessType)) RK.SetAccessControl(RS) RK = RootKey.OpenSubKey(KeyPath, RegistryKeyPermissionCheck.ReadWriteSubTree, RegUserAccess) RK.SetAccessControl(RS) End Sub
Y hay un pequeño problema :-/ Si a la clave le quitas los permisos de control total entonces luego con tu code no se le pueden modificar los permisos, da error al leer la clave como yo decía en un principio, aquí: Dim RK As RegistryKey = RootKey.OpenSubKey(KeyPath, RegistryKeyPermissionCheck.ReadWriteSubTree, RegistryRights.ChangePermissions Or RegistryRights.ReadKey)
PD: Lo he probado también con tu code de arriba sin mis modificaciones. Esto significa que si el usuario tiene denegado el permiso de control total en la clave entonces tu code no funcionará Un saludo
|
|
|
En línea
|
|
|
|
.:Weeds:.
Desconectado
Mensajes: 122
|
Eso no lo habia pensado. Creo que la clave esta en integrar tambien mi code del principio, aun k no estoy muy seguro. Voi a estar 3 dias sin internet y no voi a poder darle caña al tema, cuando vuelva mirare a ver como solucionarlo.
Saludos.
|
|
|
En línea
|
|
|
|
.:Weeds:.
Desconectado
Mensajes: 122
|
A pesar de tus esfuerzos el segundo código a mi no me funciona, me da el mismo error que comentas en el primer código. He probado decenas de códigos, he estudiado un poco sobre RegistryKeyPermissionCheck , RegistryRights , SetAccessControl , RegistryAccessRule , y RegistryKey Incluso he probado un código koreano!... pero nada ha valido la pena, parece algo de locos intentar modificar los permisos de una clave en .NET, Google no tiene la respuesta. A mi me habría gustado solucionar tu problema porque también me serviría para mi en un futuro, pero parece muy dificil conseguirlo, así que quizás quieras mirar esta alternativa que hice: -> http://foro.elhacker.net/net/libreria_de_snippets_posteen_aqui_sus_snippets-t378770.0.html;msg1872406#msg1872406Saludos. Mire otra vez más a fondo la cuestión y efectivamente mi code no funciona a 'pelo'. Probé el tuyo y le he econtrado un fallo. El los argumentos que le pasas al SETACL.exe, le pasas como usuario %USERNAME%, pero eso no funciona. Le tienes que pasar también el nombre de dominio, si no le da permisos a un usuario llamado BUITIN que genera la aplicacion de gratis. Dim user As String = Environment.UserDomainName & "\" & Environment.UserName SETACL_Info.Arguments = String.Format("-on ""{0}"" -ot reg -ace ""n:{1};p:{2}"" -rec ""{3}"" -actn ace -silent -ignoreerr -log ""{4}""", RegKey, user, Permission, Recursion, SETACL_Logfile)
Por lo demás todo bien. Saludos.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
le he econtrado un fallo Gracias por la observación Saludos!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Cómo creo un "PostComment System" que se visualice en modo "TreeView"?...
.NET (C#, VB.NET, ASP)
|
Enja
|
0
|
2,972
|
18 Abril 2008, 13:31 pm
por Enja
|
|
|
"Error 5" Acceso denegado
.NET (C#, VB.NET, ASP)
|
lanw
|
3
|
30,169
|
5 Junio 2009, 18:17 pm
por MANULOMM
|
|
|
Solicitando opinión sobre "Micosoft Security Essentials"
Seguridad
|
OLDNOVATO
|
2
|
4,132
|
13 Noviembre 2010, 08:28 am
por OLDNOVATO
|
|
|
Alternatica a conio.h y system("cls"); y system("clear"); ?
Programación C/C++
|
flacc
|
5
|
9,728
|
17 Diciembre 2010, 16:55 pm
por flacc
|
|
|
Tenable "Security Center" Training Course
Tutoriales - Documentación
|
ehn@
|
0
|
989
|
20 Noviembre 2023, 01:50 am
por ehn@
|
|