VB.NET - Permisos para archivos en win7

Iniciado por ((( SPAWN ))), 5 Enero 2010, 20:11 PM

0 Miembros y 1 Visitante están viendo este tema.

((( SPAWN )))

Hola como estan?, les comento q estoy trabajando en win 7, el tema es q para crear un simple archivo de texto, me hace problemas para crearlo en la unidad c: o diferentes carpetas dentro de la misma unidad, les muestro un código sencillo q siempre utilice para crear archivos desde vb.net:


Imports System.IO
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim xarchivo As New StreamWriter("c:\reg.txt")[color=red] ---> en esta parte me manda la excepcion [b]UnauthorizedAccessException[/b][/color]
        xarchivo.Close()
    End Sub
End Class


en la msdn me muestra lo siguiente:


Visual Basic (Declaración)
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class FileIOPermission _
    Inherits CodeAccessPermission _
    Implements IUnrestrictedPermission



Visual Basic (Uso)
Dim instance As FileIOPermission


el código q les mostre funciona perfectamente en windows xp, pero en win7 es el problema y me manda la excepcion, la pregunta es como puedo habilitar el permiso para crear o leer archivos por código en la unidad c: y demas carpetas contenidas?

Gracias de antemano, Saludos.

Cita de: EON + = SOLUCIÓN

[D4N93R]

Claro, porque en Vista y 7 necesitas permisos de administrador para escribir en ciertas carpetas, como en \, Windows, System32, etc...

Tienes dos opciones, iniciar esa aplicación como administrador, o si es por debug, puedes iniciar Visual Studio como Administrador.

Todo esto son las nuevas políticas de Seguridad de Windows..

Saludos!

((( SPAWN )))

hola D4N93R, actualmente estoy trabajando todo como administrador, estaba pensando en desactivar el UAC pero en win7 es un poco diferente al vista.

Cita de: EON + = SOLUCIÓN

Novlucker

Creo que ya lo he dicho como 50 veces a lo largo del foro :-X , en win 7 que la cuenta sea de Administrador no quiere decir que tenga los permisos todo el tiempo, botón derecho > Ejecutar como Administrador

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

((( SPAWN )))

Gracias Novlucker si funciono, una pregunta más cuando yo genere la aplicación final, y el usuario en win7 ejecute el programa, siempre va a tener q ejecutarlo como administrador o hay alguna alternativa para habilitar y pedir ese permiso a travez de código o es no es posible hacer eso?

Cita de: EON + = SOLUCIÓN

WHK

para eso existe windows server, win7 no sirve mucho para usarlo de servidor porque es demasiado estricto en cuanto a los permisos de escritura de archivos, ese sistema op es mas para usarlo en casa no para servidor.

elmaro

Estaría bueno que cuando inicies la aplicación te solicite automáticamente la ejecución como administrador.
Podes hacerlo dándole botón derecho al ejecutable y poniendo "Ejecutar como administrador" o algo así.
Estaría mucho mejor poder hacer eso desde código. Si encuentro algo lo posteo porque a mi no me vendría nada mal.

Saludos!

seba123neo

no estoy seguro, ya que no puedo probar porque no tengo widnows 7, pero proba usar AddAccessRule para cambiar permisos a las carpetas, esta en System.Security.AccessControl, busca en la MSDN por ejemplos.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson