in CredentialProvider.Microsoft/Util/EncryptedFileWithPermissions.cs [125:163]
private static void WriteToNewFileWithOwnerRWPermissionsWindows(string filePath, byte[] bytes)
{
FileSecurity security = new();
var rights = FileSystemRights.Read | FileSystemRights.Write;
security.AddAccessRule(
new FileSystemAccessRule(
WindowsIdentity.GetCurrent().Name,
rights,
InheritanceFlags.None,
PropagationFlags.NoPropagateInherit,
AccessControlType.Allow));
security.SetAccessRuleProtection(isProtected: true, preserveInheritance: false);
FileStream fs = null;
try
{
#if NET45_OR_GREATER
if (File.Exists(filePath))
{
File.Delete(filePath);
}
fs = File.Create(filePath, bytes.Length, FileOptions.None, security);
#else
FileInfo info = new FileInfo(filePath);
fs = info.Create(FileMode.Create, rights, FileShare.Read, bytes.Length, FileOptions.None, security);
#endif
fs.Write(bytes, 0, bytes.Length);
}
finally
{
fs?.Dispose();
}
}