2016-06-02 20 views
0

Ich braucheSetAccessControl Fehler als eine nicht behandelte Ausnahme des Typs ‚System.UnauthorizedAccessException‘ geben ist in mscorlib.dll aufgetreten

Zugriffskontrolle in einen Ordner setzen

mein Code

Private Sub cmdApplyRestrictions_Click(sender As Object, e As EventArgs) Handles cmdApplyRestrictions.Click 
    Dim myDirectoryInfo As New DirectoryInfo(txtFolder.Text) 

    Dim myDirectorySecurity As DirectorySecurity = myDirectoryInfo.GetAccessControl() 
    Dim User As String = System.Environment.UserDomainName + "\" + cmbUser.SelectedItem.ToString() 

    myDirectorySecurity.AddAccessRule(New FileSystemAccessRule(User, FileSystemRights.Read, AccessControlType.Deny)) 
    myDirectoryInfo.SetAccessControl(myDirectorySecurity) 
    MessageBox.Show("Permissions Altered Successfully") 

End Sub 

die Linie

myDirectoryInfo.SetAccessControl(myDirectorySecurity) 

schenkt Ausnahme als

eine nicht behandelte Ausnahme von ty "System.UnauthorizedAccessException" in mscorlib.dll

Ich bin als ein Benutzer mit Administratorrechten angemeldet, aber nicht Administrator selbst Ich muss den Zugriff auf alle Benutzer einschließlich der angemeldeten Benutzer sowie alle Benutzer einschließlich Administrator sperren

später, wenn mein Programm beendet ist, werde ich die Berechtigungen

eine weitere Voraussetzung zur Wiederherstellung ist, dass ich Zugriff auf diesen Ordner ein externes Programm

+0

Wenn Sie Windows verwenden Sie nicht „grant Zugriff auf diesen Ordner ein externes Programm“, wie Prozesse selbst haben keine Berechtigungen . (Vielleicht wollen Sie die Tatsache klären, dass Sie nicht Windows-Betriebssystem in der Frage verwenden) –

+0

Ich benutze Windows 8 –

Antwort

1

Sie benötigen App erteilen möchten, mit erhöhten Rechten ausgeführt werden .

schreiben app.manifest Datei auf Ihrer App mit diesem Inhalt:

<?xml version="1.0" encoding="utf-8"?> 
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
    <security> 
     <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> 
     <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 
</asmv1:assembly> 
+0

Ich habe dies bereits getan –

+0

und Ihre App fragt Sie nach Administratorrechten, wenn Sie es ausführen? – Gusman

+0

Nein, es fragt nicht –