最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c# 通過(guò)代碼開(kāi)啟或關(guān)閉防火墻

 更新時(shí)間:2020年10月28日 15:46:19   作者:一只獨(dú)行的猿  
這篇文章主要介紹了c# 通過(guò)代碼開(kāi)啟或關(guān)閉防火墻的示例,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下

  通過(guò)代碼操作防火墻的方式有兩種:一是代碼操作修改注冊(cè)表啟用或關(guān)閉防火墻;二是直接操作防火墻對(duì)象來(lái)啟用或關(guān)閉防火墻。不論哪一種方式,都需要使用管理員權(quán)限,所以操作前需要判斷程序是否具有管理員權(quán)限。

  1、判斷程序是否擁有管理員權(quán)限

  需要引用命名空間:System.Security.Principal

/// <summary>
/// 判斷程序是否擁有管理員權(quán)限
/// </summary>
/// <returns>true:是管理員;false:不是管理員</returns>
public static bool IsAdministrator()
{
  WindowsIdentity current = WindowsIdentity.GetCurrent();
  WindowsPrincipal windowsPrincipal = new WindowsPrincipal(current);
  return windowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator);
}

  2、注冊(cè)表修改防火墻

  需要引用命名空間:Microsoft.Win32

/// <summary>
/// 通過(guò)注冊(cè)表操作防火墻
/// </summary>
/// <param name="domainState">域網(wǎng)絡(luò)防火墻(禁用:0;啟用(默認(rèn)):1)</param>
/// <param name="publicState">公共網(wǎng)絡(luò)防火墻(禁用:0;啟用(默認(rèn)):1)</param>
/// <param name="standardState">專用網(wǎng)絡(luò)防火墻(禁用:0;啟用(默認(rèn)):1)</param>
/// <returns></returns>
public static bool FirewallOperateByRegistryKey(int domainState=1, int publicState = 1, int standardState = 1)
{
  RegistryKey key = Registry.LocalMachine;
  try
  {
    string path = "HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Services\\SharedAccess\\Defaults\\FirewallPolicy";
    RegistryKey firewall = key.OpenSubKey(path, true);
    RegistryKey domainProfile = firewall.OpenSubKey("DomainProfile", true);
    RegistryKey publicProfile = firewall.OpenSubKey("PublicProfile", true);
    RegistryKey standardProfile = firewall.OpenSubKey("StandardProfile", true);
    domainProfile.SetValue("EnableFirewall", domainState, RegistryValueKind.DWord);
    publicProfile.SetValue("EnableFirewall", publicState, RegistryValueKind.DWord);
    standardProfile.SetValue("EnableFirewall", standardState, RegistryValueKind.DWord);
  }
  catch (Exception e)
  {
    string error = $"注冊(cè)表修改出錯(cuò):{e.Message}";
    throw new Exception(error);
  }
  return true;
}

   3、直接操作防火墻對(duì)象

  需要在項(xiàng)目引用中添加對(duì)NetFwTypeLib的引用,并引用命名空間NetFwTypeLib

/// <summary>
/// 通過(guò)對(duì)象防火墻操作
/// </summary>
/// <param name="isOpenDomain">域網(wǎng)絡(luò)防火墻(禁用:false;啟用(默認(rèn)):true)</param>
/// <param name="isOpenPublicState">公共網(wǎng)絡(luò)防火墻(禁用:false;啟用(默認(rèn)):true)</param>
/// <param name="isOpenStandard">專用網(wǎng)絡(luò)防火墻(禁用: false;啟用(默認(rèn)):true)</param>
/// <returns></returns>
public static bool FirewallOperateByObject(bool isOpenDomain = true, bool isOpenPublicState = true, bool isOpenStandard = true)
{
  try
  {
    INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
    // 啟用<高級(jí)安全Windows防火墻> - 專有配置文件的防火墻
    firewallPolicy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PRIVATE, isOpenStandard);
    // 啟用<高級(jí)安全Windows防火墻> - 公用配置文件的防火墻
    firewallPolicy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PUBLIC, isOpenPublicState);
    // 啟用<高級(jí)安全Windows防火墻> - 域配置文件的防火墻
    firewallPolicy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_DOMAIN, isOpenDomain);
  }
  catch (Exception e)
  {
    string error = $"防火墻修改出錯(cuò):{e.Message}";
    throw new Exception(error);
  }
  return true;
}

以上就是c# 通過(guò)代碼開(kāi)啟或關(guān)閉防火墻的詳細(xì)內(nèi)容,更多關(guān)于c# 防火墻的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#列表框、復(fù)選列表框、組合框的用法實(shí)例

    C#列表框、復(fù)選列表框、組合框的用法實(shí)例

    這篇文章主要介紹了C#列表框、復(fù)選列表框、組合框的用法,實(shí)例分析了在一個(gè)簡(jiǎn)單存儲(chǔ)項(xiàng)目中列表框、復(fù)選列表框、組合框的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • C#常用正則驗(yàn)證函數(shù)示例

    C#常用正則驗(yàn)證函數(shù)示例

    這篇文章主要介紹了C#常用正則驗(yàn)證函數(shù),舉例分析了C#針對(duì)IP驗(yàn)證、價(jià)格驗(yàn)證及正整數(shù)驗(yàn)證的相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • Unity使用物理引擎實(shí)現(xiàn)多旋翼無(wú)人機(jī)的模擬飛行

    Unity使用物理引擎實(shí)現(xiàn)多旋翼無(wú)人機(jī)的模擬飛行

    這篇文章主要介紹了Unity使用物理引擎實(shí)現(xiàn)多旋翼無(wú)人機(jī)的模擬飛行,包括了詳細(xì)的原理介紹和代碼實(shí)現(xiàn),對(duì)物理引擎感興趣的同學(xué),可以參考下
    2021-04-04
  • C# 16進(jìn)制與字符串、字節(jié)數(shù)組之間的轉(zhuǎn)換

    C# 16進(jìn)制與字符串、字節(jié)數(shù)組之間的轉(zhuǎn)換

    在串口通訊過(guò)程中,經(jīng)常要用到 16進(jìn)制與字符串、字節(jié)數(shù)組之間的轉(zhuǎn)換
    2009-05-05
  • WPF實(shí)現(xiàn)倒計(jì)時(shí)轉(zhuǎn)場(chǎng)動(dòng)畫(huà)效果

    WPF實(shí)現(xiàn)倒計(jì)時(shí)轉(zhuǎn)場(chǎng)動(dòng)畫(huà)效果

    這篇文章主要介紹了如何利用WPF實(shí)現(xiàn)倒計(jì)時(shí)轉(zhuǎn)場(chǎng)動(dòng)畫(huà)效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下
    2022-08-08
  • C#集合數(shù)據(jù)去重的5種方式及對(duì)比分析

    C#集合數(shù)據(jù)去重的5種方式及對(duì)比分析

    今天我們一起來(lái)討論一下關(guān)于C#集合數(shù)據(jù)去重的5種方式并且使用BenchmarkDotNet對(duì)這5種方式進(jìn)行性能基準(zhǔn)對(duì)比測(cè)試分析,每種方法都有其特點(diǎn)和適用場(chǎng)景,我們可以根據(jù)具體需求和執(zhí)行效率選擇一種進(jìn)行使用,需要的朋友可以參考下
    2024-11-11
  • Visual Studio 中自定義代碼片段的方法

    Visual Studio 中自定義代碼片段的方法

    這篇文章主要介紹了Visual Studio 中自定義代碼片段的方法,本文分步驟通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 深入理解C#中的枚舉

    深入理解C#中的枚舉

    本篇文章主要是對(duì)C#中的枚舉進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01
  • C#窗體程序?qū)崿F(xiàn)全屏及取消全屏步驟

    C#窗體程序?qū)崿F(xiàn)全屏及取消全屏步驟

    這篇文章主要介紹了C#窗體程序?qū)崿F(xiàn)全屏及取消全屏步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • C#實(shí)現(xiàn)標(biāo)題閃爍效果的示例代碼

    C#實(shí)現(xiàn)標(biāo)題閃爍效果的示例代碼

    在Windows系統(tǒng)中,當(dāng)程序在后臺(tái)運(yùn)行時(shí),如果某個(gè)窗體的提示信息需要用戶瀏覽,該窗體就會(huì)不停地閃爍,這樣就會(huì)吸引用戶的注意,下面我們就來(lái)看看如何使用C#實(shí)現(xiàn)這一效果吧
    2024-04-04

最新評(píng)論

堆龙德庆县| 商都县| 江华| 容城县| 通城县| 莲花县| 东兰县| 宜宾县| 枝江市| 铜山县| 淮北市| 临沭县| 财经| 岗巴县| 娱乐| 外汇| 广安市| 沙坪坝区| 隆林| 麻栗坡县| 河西区| 鹤壁市| 四会市| 郓城县| 莫力| 淅川县| 饶阳县| 和林格尔县| 温宿县| 辽阳县| 临漳县| 呼图壁县| 苍溪县| 定州市| 醴陵市| 闸北区| 桐梓县| 西乡县| 伊宁市| 科技| 沙坪坝区|