Questione : Dare permesso affinchè produttore del flusso scrivano in C: /azionamento

Ciao, sto provando a scrivere ad una C locale: /azionamento using il produttore del flusso. dice che non ho permesso scrivere in c: /azionamento. È comunque ci di fissare quel il permesso nel mio code. class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
vuoto notpretty WriteLog (filePath della stringa, messaggio di elettricità statica del >private " del class= " " di codeSnippet640696 del id= del
        
class= del

Risposta : Dare permesso affinchè produttore del flusso scrivano in C: /azionamento

Grande.

approvazione qui andiamo.

Punto 1.

Generare un cliente locale sul vostro username del pc: filewriter e parola d'accesso: FileWriter1 (o qualcosa voi immaginazione).

Punto 2.

Dare che i permessi dell'utente a Read/Write/eseguono sull'azionamento di C o su un dispositivo di piegatura a cui scriverete il vostro ceppo. (Che credo dovrebbe essere il senso. Un dispositivo di piegatura a cui quel cliente di utente avrà accesso e non l'azionamento della radice C).

Punto 3.

Generare una nuova lima del codice categoria ed il nome è Security.cs

Aggiungere il codice a quel codice categoria


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:
using il sistema;
using System.Runtime.InteropServices;
using System.Security.Principal;
using System.Security.Permissions;

pubblica sicurezza del codice categoria
{

    tokenHandle riservato di IntPtr = nuovo IntPtr (0);

    impersonatedUser riservato di WindowsImpersonationContext;

    [DllImport (“kernel32.dll„)]
    bool extern statico CloseHandle (maniglia di IntPtr);

    Cablaggio  di prova di //.
    //  se comprendete questo codice in un DLL, è sicuro richiedere FullTrust.
    [PermissionSetAttribute (SecurityAction.Demand, nome = “FullTrust„)]
    bool pubblico ImpersonateStart (sDomainName della stringa, username della stringa, parola d'accesso della stringa)
    {
        returnValue di bool;
        newId = posizione di segnale minimo di WindowsIdentity;
        prova
        {
            tokenHandle = IntPtr.Zero;
            Chiamata  LogonUser di // per ottenere una maniglia ad un segno di accesso.
            returnValue = falso;
            const int LOGON32_PROVIDER_DEFAULT = 0;
            il parametro di //This induce LogonUser a generare un segno primario.
            const int LOGON32_LOGON_INTERACTIVE = 2;

            returnValue = LogonUser (username, sDomainName, tokenHandle di parola d'accesso, di LOGON32_LOGON_INTERACTIVE, di LOGON32_PROVIDER_DEFAULT, di riferimento);

            controllo di // se inizio attività riuscito
            se ((== del returnValue falso))
            {
                il int macera = Marshal.GetLastWin32Error ();
                tiro nuovo System.ComponentModel.Win32Exception (macerare);
            }
            altrimenti
            {
                L'inizio attività di // è riuscito
                Uso che  di // la maniglia simbolica ha restituito da LogonUser.
                newId = nuovo WindowsIdentity (tokenHandle);
                impersonatedUser = newId.Impersonate ();
            }
        }
        fermo (eccezione ex)
        {
            ex = posizione di segnale minimo;
            returnValue = falso;
        }
        infine
        {
            se (! (posizione di segnale minimo del == del newId))
            {
                newId.Dispose ();
                newId = posizione di segnale minimo;
            }
        }
        returnValue di ritorno;
    }

    [PermissionSetAttribute (SecurityAction.Demand, nome = “FullTrust„)]
    pubblico ImpersonateStop vuoto ()
    {
        prova
        {
            Arresto  di // che impersonating l'utente.
            impersonatedUser.Undo ();
            //  libera i segni.
            se (tokenHandle! = IntPtr.Zero)
            {
                CloseHandle (tokenHandle);
            }
        }
        fermo (ritorno di System.Exception)
        {
        }
    }

    [DllImport (“advapi32.dll„, SetLastError = allineano, CharSet = CharSet.Unicode)]
    bool extern statico pubblico LogonUser (lpszUsername della stringa, lpszDomain della stringa, lpszPassword della stringa,
        il dwLogonType di int, il dwLogonProvider di int, il riferimento IntPtr phToken);

}
Altre soluzioni  
 
programming4us programming4us