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.