Buongiorno a tutti,
io ho un programmino che va a verificare i permessi di alcuni utenti e in base a questi permessi l'utente potrà modificare dei file .ini.
Il problema è che all'inizio l'utente doveva a monte avere i permessi di scrittura in quel disco, ora per esigenze del cliente non si vogliono dare i permessi a tutti gli utenti sulla cartella, ma da codice VB.net.
Quindi il mio problema ora è dare i permessi di scrittura a quel file per l'utente X senza chiedere ai sistemisti di aggiungere l'utente con i permessi di scrittura.
Ho provato a scrivere il seguente codice:
Imports System
Imports System.IO
Imports System.Security.AccessControl
Partial Public Class _Default
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim user_logname As String
        user_logname = Trim(Request.ServerVariables("LOGON_USER"))
        user_logname = Right(user_logname, Len(user_logname) - InStr(1, user_logname, "\", vbTextCompare))
        AddDirittiBase("K:\APMDBRoot\", user_logname)
    End Sub
    Private Sub AddDirittiBase(ByVal Path As String, ByVal Account As String)
        Try
            Dim dInfo As New DirectoryInfo(Path)
            Dim dSecurity As DirectorySecurity = dInfo.GetAccessControl
            Dim Rule1 As New FileSystemAccessRule(New System.Security.Principal.NTAccount(Account), _
            FileSystemRights.Traverse _
            + FileSystemRights.Read, _
            AccessControlType.Allow, _
            PropagationFlags.NoPropagateInherit, _
            AccessControlType.Allow)
            Dim Rule2 As New FileSystemAuditRule(New System.Security.Principal.NTAccount(Account), _
            FileSystemRights.Traverse _
            + FileSystemRights.Read, _
            AuditFlags.Success, _
            PropagationFlags.NoPropagateInherit, _
            AuditFlags.Success)
            Dim Riuscita1 As Boolean
            Dim Riuscita2 As Boolean
            dSecurity.ModifyAccessRule(AccessControlModification.Add, Rule1, Riuscita1)
            dSecurity.ModifyAuditRule(AccessControlModification.Add, Rule2, Riuscita2)
            dInfo.SetAccessControl(dSecurity)
        Catch ex As Exception
        End Try
    End Sub
End Class
ma se provo a lanciarlo e successivamente creare una cartella sotto il percorso indicato non me lo fa fare.