L'introduzione della UAC di Windows Vista ha reso necessaria, tra le altre cose, una maggiore attenzione alla posizione in cui i programmi salvano le proprie impostazioni: questo perché, ad esempio, lo standard user non ha i diritti di scrittura nella cartella C:\Program Files. La seguente routine permette di sapere se l'utente dispone di determinati diritti sul file specificato:
  public bool HasPermission(string fileName, FileSystemRights rights)
{
    bool deny = false, allow = false;
    WindowsIdentity identity = WindowsIdentity.GetCurrent();
    FileInfo fi = new FileInfo(fileName);
    AuthorizationRuleCollection acl = fi.GetAccessControl().GetAccessRules(true, true, typeof(SecurityIdentifier));
    for (int i = 0; i < acl.Count; i++)
    {
        FileSystemAccessRule rule = (FileSystemAccessRule)acl[i];
        if (identity.User.Equals(rule.IdentityReference))
        {
            if (AccessControlType.Deny.Equals(rule.AccessControlType))
            {
                if ((rule.FileSystemRights & rights) == rights)
                    deny = true;
            }
            else if (AccessControlType.Allow.Equals(rule.AccessControlType))
            {
                if ((rule.FileSystemRights & rights) == rights)
                    allow = true;
            }
        }
    }
    IdentityReferenceCollection groups = identity.Groups;
    for (int j = 0; j < groups.Count; j++)
    {
        for (int i = 0; i < acl.Count; i++)
        {
            FileSystemAccessRule rule = (FileSystemAccessRule)acl[i];
            if (groups[j].Equals(rule.IdentityReference))
            {
                if (AccessControlType.Deny.Equals(rule.AccessControlType))
                {
                    if ((rule.FileSystemRights & rights) == rights)
                        deny = true;
                }
                else if (AccessControlType.Allow.Equals(rule.AccessControlType))
                {
                    if ((rule.FileSystemRights & rights) == rights)
                        allow = true;
                }
            }
        }
    }
    return !deny && allow;
}
Utilizzando questo codice, per sapere se l'utente ha il diritto di scrittura su un file basta scrivere qualcosa del tipo: 
bool permesso = HasPermission(fileName, FileSystemRights.Write);
if (permesso)
    MessageBox.Show("Hai i diritti di scrittura sul file.");
else
    MessageBox.Show("Non hai i diritti di scrittura sul file.");