[C#] Cách sửa lỗi This app has been blocked for your protection do Windows Defender SmartScreen

[C#] Cách sửa lỗi This app has been blocked for your protection do Windows Defender SmartScreen
Đăng bởi: Thảo Meo - Lượt xem: 423 14:13:40, 20/10/2022C#   In bài viết

Xin chào các bạn, bài viết hôm nay mình sẻ hướng dẫn các bạn cách sửa lỗi "This app has been blocked for your protection" trên Winform.

How to Fix This app has been blocked for your protection in C# winform

Lỗi “This app has been blocked for your protection” xuất hiện trên máy tính khi người dùng chạy một file hoặc ứng dụng lạkhông rõ nguồn gốc thì bị ngăn chặn bởi tính năng Windows Defender SmartScreen, tích hợp sẵn từ Windows 8 trở lên (gồm cả Windows 10).

Thường file nào Block bạn sẽ thấy thông tin như hình ở thuộc tính Properties của file.

security_block_app

Bài viết này, mình sẽ hướng dẫn các bạn cách thêm và xóa tính năng này trên C#, Winform.

smart_screen_winform

Ở ví dụ này khi mình add vào file DWHImportTool.exe => khi các bạn chạy chương trình sẽ xuất hiện giao diện như sau để cảnh báo an toàn.

protected_pc

Full source code C#:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Trinet.Core.IO.Ntfs;

namespace ZoneIdentifier
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnBrowse_Click(object sender, EventArgs e)
        {
            using (var dlg = new OpenFileDialog()) {
                if (dlg.ShowDialog() == DialogResult.OK) { 
                    txtFilename.Text = dlg.FileName;

                    CheckZoneIdentifier(txtFilename.Text);
                }
            }
        }

        private void CheckZoneIdentifier(string path)
        {
            var fileInfo = new FileInfo(path);

            foreach (var alternateDataStream in fileInfo.ListAlternateDataStreams())
            {
                richTextBox1.Text += String.Format("{0} - {1}", alternateDataStream.Name, alternateDataStream.Size);
            }

         
            if (fileInfo.AlternateDataStreamExists("Zone.Identifier"))
            {
                richTextBox1.Text += String.Format("Found zone identifier stream:");

                var s = fileInfo.GetAlternateDataStream("Zone.Identifier", FileMode.Open);
                using (TextReader reader = s.OpenText())
                {
                    richTextBox1.Text += String.Format(reader.ReadToEnd());
                }
            }
            else
            {
                richTextBox1.Text += String.Format("No zone identifier stream found.");
            }
        }

        private void btnBlock_Click(object sender, EventArgs e)
        {
            var path = txtFilename.Text;
            var fileInfo = new FileInfo(path);

            var ads = fileInfo.GetAlternateDataStream("Zone.Identifier", FileMode.Create);

            using (var stream = ads.OpenWrite()) {
                using (var writer = new StreamWriter(stream))
                {
                    writer.WriteLine("[ZoneTransfer]");
                    writer.WriteLine("ZoneId=3");
                }
            }
            CheckZoneIdentifier(txtFilename.Text);

        }

        private void btnUnblock_Click(object sender, EventArgs e)
        {
            var fileInfo = new FileInfo(txtFilename.Text);
            fileInfo.DeleteAlternateDataStream("Zone.Identifier");
            CheckZoneIdentifier(txtFilename.Text);
        }
    }
}

Thanks for watching!

DOWNLOAD SOURCE

Tags: windows defender smartscreenzoneidentifier c#

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Cách sửa lỗi This app has been blocked for your protection do Windows Defender SmartScreen
Đăng bởi: Thảo Meo - Lượt xem: 423 14:13:40, 20/10/2022C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.