Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用firewall.dll属性时出现拒绝访问错误。(HRESULT异常:0x80070005(E_访问被拒绝))_C# - Fatal编程技术网

C# 使用firewall.dll属性时出现拒绝访问错误。(HRESULT异常:0x80070005(E_访问被拒绝))

C# 使用firewall.dll属性时出现拒绝访问错误。(HRESULT异常:0x80070005(E_访问被拒绝)),c#,C#,我有使用firewall.dll向windows防火墙添加规则的代码,但我收到以下异常“访问被拒绝”(来自HRESULT的异常:0x80070005(E_ACCESSDENIED))” 这是我的代码: using NetFwTypeLib; namespace Tserver { class Program { static void Main(string[] args) { INetFwRule firewallRule = (INetFwR

我有使用firewall.dll向windows防火墙添加规则的代码,但我收到以下异常“访问被拒绝”(来自HRESULT的异常:0x80070005(E_ACCESSDENIED))” 这是我的代码:

using NetFwTypeLib;
namespace Tserver
{
    class Program
    {
    static void Main(string[] args)
    {

        INetFwRule firewallRule = (INetFwRule)Activator.CreateInstance(
        Type.GetTypeFromProgID("HNetCfg.FWRule"));
                   firewallRule.Action = NET_FW_ACTION_.NET_FW_ACTION_BLOCK;
        firewallRule.Description = "Used to block all internet access.";
        firewallRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_OUT;
        firewallRule.Enabled = true;
        firewallRule.InterfaceTypes = "All";
        firewallRule.Name = "Block Internet";

        INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(
            Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
        firewallPolicy.Rules.Add(firewallRule);
}

你需要有管理员权限才能做你正在做的事情


我在客户端计算机上也遇到过同样的问题,但当我尝试在具有管理员权限的计算机(Windows 7)上执行同样的操作时,一切都很正常。

操作系统的当前用户是否具有管理员权限?您将需要升级的安全级别。这也意味着UAC等。顺便说一句,如果你真的想通过代码更改防火墙设置,应该三思而后行