设置 Windows 文件安全性

2024-01-10

我的问题与大多数人相反。我正在用 C# 本地生成文件,但是我want将它们标记为已阻止。因此,当用户在 Word 或 Excel 等应用程序中打开它们时,它会在“保护模式”下打开它们。

I've read http://answers.microsoft.com/en-us/windows/forum/windows_xp-security/security-this-file-came-from-another-computer-and/56ccf19c-66e8-4280-8588-8c91e5d436bf这是在“NTFS 备用数据流”上设置的。有谁知道我如何在 C# 中模仿这个?


您还可以使用保留区域标识符 http://msdn.microsoft.com/en-us/library/ms537029%28v=vs.85%29.aspx对象而不是直接写入替代数据流。

更多信息请点击这里:http://blogs.msdn.com/b/oldnewthing/archive/2013/11/04/10463035.aspx http://blogs.msdn.com/b/oldnewthing/archive/2013/11/04/10463035.aspx和这里:https://github.com/citizenmatt/UnblockZoneIdentifier https://github.com/citizenmatt/UnblockZoneIdentifier

using System;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;

namespace ConsoleApplication3
{
    public enum URLZONE : uint
    {
        URLZONE_LOCAL_MACHINE = 0,
        URLZONE_INTRANET = 1,
        URLZONE_TRUSTED = 2,
        URLZONE_INTERNET = 3,
        URLZONE_UNTRUSTED = 4,
    }

    [ComImport]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    [Guid("cd45f185-1b21-48e2-967b-ead743a8914e")]
    public interface IZoneIdentifier
    {
        URLZONE GetId();
        void SetId(URLZONE zone);
        void Remove();
    }

    class Program
    {
        static void Main(string[] args)
        {
            object persistZoneId = Activator.CreateInstance(Type.GetTypeFromCLSID(Guid.Parse("0968e258-16c7-4dba-aa86-462dd61e31a3")));
            IZoneIdentifier zoneIdentifier = (IZoneIdentifier)persistZoneId;
            IPersistFile persisteFile = (IPersistFile)persistZoneId;
            zoneIdentifier.SetId(URLZONE.URLZONE_UNTRUSTED);
            persisteFile.Save(@"c:\temp\test.txt", false);
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置 Windows 文件安全性 的相关文章

  • 无法在 QGLWidget 中设置所需的 OpenGL 版本

    我正在尝试在 Qt 4 8 2 中使用 QGLWidget 我注意到 QGLWidget 创建的默认上下文不显示 OpenGL 3 1 以上的任何输出 Qt wiki 有一个教程 http qt project org wiki How t
  • 错误:表达式不可赋值三元运算符

    我有以下代码 MPLABX XC8 编译器给出此错误 错误 表达式不可分配 U1ERRIRbits RXFOIF uart1 oerr 1 uart1 oerr 0 这是相关代码部分 typedef union struct bool fe
  • 如何使用不同的基本路径托管 Blazor WebAssembly 应用程序

    我有一个 Blazor Webassemble NET 托管应用程序 在我们托管它的服务器上 应用程序的基本路径将是mydomain com coolapp 因此 为了尝试让应用程序在服务器上正确呈现 我一直遵循本页 应用程序基本路径 部分
  • C++中类成员函数相互调用有什么好处?

    我是 C 新手 我发现下面的编程风格对我来说很有趣 我在这里写了一个简化版本 include
  • 如何在 C++ 中为指针“this”赋值

    在函数中 如何分配this一个新的价值 您可以分配对象this点于 this XY 但你不能分配直接值this this XY Error Expression is not assignable
  • 如何以编程方式删除受信任的根证书颁发机构中的证书?

    我需要能够从组织中的每台电脑中删除特定的证书 是的 我可以逐个座位 但我要到周四才能完成 而且我没有人力逐个座位 是否有使用 C 的编程方式来执行此操作 我认为你不需要编写任何 C 看看certmgr exe del http msdn m
  • 我担心我添加了太多接口

    我正在构建我的领域模型并继续重构它 正如我所做的那样 我发现我喜欢接口 因为它允许我根据接口为具体类型创建可重用的方法 控制器 视图 但是 我发现每次向域实体之一添加新属性时 我都会创建一个接口 例如 我有一个会员状态从抽象继承的对象Ent
  • 如何在 Linux 上重新实现(或包装)系统调用函数?

    假设我想完全接管 open 系统调用 也许要包装实际的系统调用并执行一些日志记录 一种方法是使用 LD PRELOAD http scaryreasoner wordpress com 2007 11 17 using ld preload
  • 公交车公共交通算法

    我正在开发一个可以查找公交路线的离线 C 应用程序 我可以提取时间表 巴士 路线数据 我正在寻找适用于基本数据的最简单的解决方案 可以使用什么算法来查找从巴士站 A 到巴士站 B 的路线 是否有适用于 C Java 的开源解决方案 数据库的
  • 注入包含接口的所有已注册实现的 Enumerable

    给出以下接口 public interface IMyProcessor void Process 我希望能够注册多个实现 并让我的 DI 容器将它们的可枚举注入到这样的类中 public class MyProcessorLibrary
  • 如何在 C 中链接目标文件?失败并显示“架构 x86_64 的未定义符号”

    因此 我尝试在我的文件 file2 c 中使用另一个 C file1 c 文件中定义的函数 为了做到这一点 我包含了 file1 file1 h 的标头 但是 每当我尝试使用 gcc 编译文件时 我都会收到以下错误 Undefined sy
  • ASP.NET - Crystal Report Viewer 打印按钮在 ASP.NET 中不起作用

    我正在使用 Visual Studio 2008 但我遇到了水晶报告问题 当我单击打印按钮时 它会将我带到弹出窗口 但未找到页面 弹出的网址是 http localhost aspnet client System Web 2 0 5072
  • MPI - 发送和接收列

    我需要从一个进程发送矩阵列并从另一个进程接收它 我尝试运行以下程序 但得到了一个奇怪的结果 至少我这么认为 仅复制矩阵的第一个元素 某些矩阵元素会发生意外变化 include
  • 具有多个父项的 Qt 树模型

    我想构建一棵树 其中一个元素可以引用另一个元素 我想要构建的树是 像这样的东西 A B C D E F P this is a pointer to C D first child of C E second child of C I fo
  • 在 Visual Studio 2012 Express 中设置 C++ 调试环境

    我需要调试的应用程序需要设置环境变量 这在 Visual Studio 2012 中似乎非常复杂 我想做类似的事情 set path c foo c bar c windows c program files application set
  • Windows Phone 的 JSON 反序列化

    我正在尝试反序列化以下 JSON 但我真的不知道如何使用 JSON net 来完成这项工作 我正在使用 C 和 JSON Net 库 我的 JSON 如下 found 3 bounds 43 54919 172 62148 43 54487
  • 为什么我可以在另一个函数中定义一个函数?

    请参阅下面的代码 我在另一个函数中定义了一个函数 void test1 void void test2 void printf test2 n printf test1 n int main void test1 return 0 这个用法
  • 如何防止 Lotus Notes 用户转发或复制通过 System.Net.Mail 发送的邮件?

    我想使用 SMTP 客户端 uiing microsft net 以 C 作为编程语言发送电子邮件 但是对于通过SMTP客户端发送的电子邮件 我们是否可以添加 禁止转发 或 禁止复制 等安全功能 我不希望电子邮件的收件人转发或复制电子邮件的
  • 将同步 zip 操作转换为异步

    我们有一个现有的库 其中一些方法需要转换为异步方法 但是我不确定如何使用以下方法执行此操作 错误处理已被删除 该方法的目的是压缩文件并将其保存到磁盘 请注意 zip 类不公开任何异步方法 public static bool ZipAndS
  • 如何使用 Microsoft Graph API 更新 MailboxSettings

    我想从不同的日历更新邮箱设置 如何构建可以通过 Microsoft Graph 更新 MailboxSetting 的请求 这是我的代码示例 但有例外 代码示例 User obj GraphServiceClient Users roomC

随机推荐

  • 地理编码器 Gem 无法在生产环境中工作

    所以我正在使用Geocoder https github com alexreisner geocoder根据用户提交表单时提供的地址提取纬度和经度坐标 我这样做是为了使用 Google 地图 API 绘制标记 这在开发中非常有效 零问题
  • .NET 4.5 中是否已弃用 ObjectContext?

    我一直在使用ObjectContexts已经很长一段时间了 现在我已经安装了 VS 2012 令我惊讶的是 实体数据模型没有创建代码生成项的选项ObjectContexts and EntityObjects代替DbContexts and
  • Mongoose 在 Node.js 中创建多租户支持连接

    我正在研究一种使用 node js mongoose 和 mongodb 实现多数据库以支持多租户的好方法 我发现 mongoose 支持一种名为createConnection 我想知道使用它的最佳实践 实际上 我将所有这些连接存储在一个
  • 基于智能指针的 CRTP 习惯用法的编译问题

    我正在尝试为 CRTP 示例编译一个最小的工作示例这篇博文 https www fluentcpp com 2017 09 12 how to return a smart pointer and use covariance 它基于智能指
  • 如何将一些“统计数据”从 C# 程序传递到另一个程序?

    我有一个命令行程序 可以 做很多工作 并产生 很多统计数据 它是股票交易软件 对于延迟 错误等非常重要 所以我不想向其中添加 GUI 此外 有时需要 GUI 但控制台应用程序应始终启动 我需要 GUI 来友好地显示收集的统计信息 以只读模式
  • 降低无向图的时间复杂度

    我有一个无向图 表示 Facebook 等社交媒体中的用户连接 有N个节点 从1到N 边由数组 from 和 to 表示 任务数组表示我有兴趣查找该节点 即社交媒体中的用户 的连接的节点号 Example N 5 From 2 2 1 1
  • ASP.NET Core 中 HttpContext 如何响应 END

    我想使用mvcSystem Web HttpContext Current Response End 但尝试使用以下代码在 mvc core 2 中 private readonly IHttpContextAccessor httpCon
  • 如何找出哪个视图是焦点?

    我需要查明活动中是否有任何视图聚焦以及它是什么视图 这个怎么做 Call getCurrentFocus http developer android com reference android app Activity html getC
  • 如何用 sed 替换整行?

    假设我有一个包含行的文件 aaa bbb 现在我想将它们替换为 aaa xxx 我可以这样做 sed s aaa bbb aaa xxx g 现在我有一个包含几行的文件 如下所示 aaa bbb aaa ccc aaa ddd aaa so
  • Microsoft Azure Bot Framework 模拟器未发送消息

    在我的 Windows 10 上 我安装了Microsoft Azure Bot 框架模拟器 https learn microsoft com en us azure bot service bot service debug emula
  • 获取具有特定 fieldName 的所有 lucene 值

    解决this https stackoverflow com questions 618227 faster way to get distinct values from lucene query问题 我创建了一个新的 Lucene 索引
  • 如何从远程文件(Java)获取修改日期?

    我有一个从远程 URL 下载文件的功能 使用 Java 现在我想知道真正的修改日期 因为当我下载它时我丢失了此信息 提前致谢 public void downloadFile String remoteFile String localFi
  • setColorFilter 有时在 Android 可绘制对象上不起作用

    我正在尝试根据用户在偏好中选择的原色在可绘制对象上应用滤色器 这是我正在使用的一段代码 getResources getDrawable R drawable ic batman 1 setColorFilter ColorHelper g
  • argparse 和互斥组,每个组都有自己所需的设置

    我有一个程序需要有一个选项来测试服务器 ID 列表OR对服务器发出命令 这意味着 如果我发出 test 那么不需要其他任何东西 它对每台服务器运行全部测试并打印结果 但是 如果我不指定 test 那么它应该需要一些选项 例如 id and
  • 检查 SQLite 中是否存在列

    我需要检查列是否存在 如果不存在则添加它 根据我的研究 sqlite 似乎不支持 IF 语句 应该使用 case 语句 这是我到目前为止所拥有的 SELECT CASE WHEN exists select from qaqc column
  • 如何更新海燕窗口的名称?

    我正在尝试在保存事件后更新海燕窗口的名称 显示名称 我实现了自己的 NameInfo 类 该类继承自 NameInfo 抽象类 public class MyNameInfo NameInfo private string name str
  • Cckeditor 更新文本区域

    我正在尝试让 ckeditor 工作 显然它没有使用文本区域 因此提交表单时不会在编辑器中提交文本 因为我使用多态关联等 我无法创建 onsubmit 函数来获取 textarea 的值 当提交表单时 所以我发现了这个问题 使用 jQuer
  • Jetpack Compose:如何创建评级栏?

    我正在尝试实施评级栏 我指的是https gist github com vitorprado 0ae4ad60c296aefafba4a157bb165e60 https gist github com vitorprado 0ae4ad
  • Inno Setup:多个下一步按钮

    我想在我的安装程序屏幕上有两个按钮 两个按钮最终都应该将用户带到下一个屏幕 但每个按钮都执行自己的辅助逻辑 是否可以有两个 NextButton 它们都将您带到下一个屏幕 但执行不同的代码 如果做不到这一点 有没有办法以编程方式调用 Wiz
  • 设置 Windows 文件安全性

    我的问题与大多数人相反 我正在用 C 本地生成文件 但是我want将它们标记为已阻止 因此 当用户在 Word 或 Excel 等应用程序中打开它们时 它会在 保护模式 下打开它们 I ve read http answers micros