Cuestión : Donante del permiso para que escritor de la corriente escriba en C: /impulsión

Hola, estoy intentando escribir a una C local: /impulsión usar escritor de la corriente. dice que no tengo permiso para escribir en c: /impulsión. Hay de todos modos fijar eso el permiso en mi code. class= > " claro " del
> del " codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
vacío notpretty WriteLog (filePath de la secuencia, mensaje de los parásitos atmosféricos del >private " del class= " de " codeSnippet640696 del id= del
        
class= del

Respuesta : Donante del permiso para que escritor de la corriente escriba en C: /impulsión

Grande.

autorización aquí vamos.

Paso 1.

Crear una cuenta local en su username de la PC: filewriter y contraseña: FileWriter1 (o algo usted suposición).

Paso 2.

Dar que los permisos del usuario al Read/Write/ejecutan en la impulsión de C o una carpeta a las cuales usted escribirá su registro. (Que creo debe ser la manera. Una carpeta a la cual esa cuenta de usuario tendrá el acceso y no la impulsión de la raíz C).

Paso 3.

Crear un nuevo archivo de la clase y el nombre es Security.cs

Agregar el código a esa clase


1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
usar sistema;
usar System.Runtime.InteropServices;
usar System.Security.Principal;
usar System.Security.Permissions;

seguridad pública de la clase
{

    tokenHandle privado de IntPtr = nuevo IntPtr (0);

    impersonatedUser privado de WindowsImpersonationContext;

    [DllImport (“kernel32.dll”)]
    bool extern estático CloseHandle (manija de IntPtr);

    Arnés  de prueba de //.
    //  si usted incorpora este código en un DLL, esté seguro de exigir FullTrust.
    [PermissionSetAttribute (SecurityAction.Demand, nombre = “FullTrust”)]
    bool público ImpersonateStart (sDomainName de la secuencia, username de la secuencia, contraseña de la secuencia)
    {
        returnValue del bool;
        newId = falta de información de WindowsIdentity;
        intento
        {
            tokenHandle = IntPtr.Zero;
            Llamada  LogonUser de // para obtener una manija a un símbolo del acceso.
            returnValue = falso;
            const internacional LOGON32_PROVIDER_DEFAULT = 0;
            el parámetro de //This hace LogonUser crear un símbolo primario.
            const internacional LOGON32_LOGON_INTERACTIVE = 2;

            returnValue = LogonUser (username, sDomainName, tokenHandle de la contraseña, de LOGON32_LOGON_INTERACTIVE, de LOGON32_PROVIDER_DEFAULT, de la referencia);

            cheque de // si conexión acertada
            si ((== del returnValue falso))
            {
                la internacional enría = Marshal.GetLastWin32Error ();
                tiro nuevo System.ComponentModel.Win32Exception (enriar);
            }
            
            {
                La conexión de // tuvo éxito
                Uso  de // que la manija simbólica volvió por LogonUser.
                newId = nuevo WindowsIdentity (tokenHandle);
                impersonatedUser = newId.Impersonate ();
            }
        }
        retén (excepción ex)
        {
            ex = falta de información;
            returnValue = falso;
        }
        finalmente
        {
            ¡si (! (falta de información del == del newId))
            {
                newId.Dispose ();
                newId = falta de información;
            }
        }
        returnValue de vuelta;
    }

    [PermissionSetAttribute (SecurityAction.Demand, nombre = “FullTrust”)]
    público ImpersonateStop vacío ()
    {
        intento
        {
            Parada  de // que personifica al usuario.
            impersonatedUser.Undo ();
            //  libera los símbolos.
            ¡si (tokenHandle! = IntPtr.Zero)
            {
                CloseHandle (tokenHandle);
            }
        }
        retén (vuelta de System.Exception)
        {
        }
    }

    [DllImport (“advapi32.dll”, SetLastError = verdad, CharSet = CharSet.Unicode)]
    bool extern estático público LogonUser (lpszUsername de la secuencia, lpszDomain de la secuencia, lpszPassword de la secuencia,
        el dwLogonType de la internacional, dwLogonProvider de la internacional, referencia IntPtr phToken);

}
Otras soluciones  
 
programming4us programming4us