2020年10月26日 星期一

c#錄音和放音,超簡單!不用DirectX

 https://www.itdaan.com/tw/e7d5e5f305ed


https://www.codeproject.com/Articles/31356/C-MP3-Sound-Capturing-Recording-Component

2020年10月23日 星期五

禁用格式化磁碟操作 保護電腦文件安全防止刪除

 禁用格式化磁碟操作 保護電腦文件安全防止刪除

https://kknews.cc/zh-tw/news/y5958ek.html

對於磁碟格式化的操作,是通過Format.exe程序來實現,因此我們也有必要對可以實現磁碟格式化的軟體進行限制運行操作,從而 實現更徹底的防止格式化磁碟操作


2020年10月21日 星期三

1 20使用asp net core必须会依赖注入

 https://www.youtube.com/watch?v=I6cevbG6aSs

https://www.youtube.com/watch?v=ToUut_LBZbs&list=PL_ejO7vn7l2358FsVgNZI944kEIn4NNJ8

webapi jwt 實作

 

=====================================================================

瀏覽器會有WEB API 跨域請求


傳統作法

1.btn_1登入後,取得帳號

2.btn_2 在前端驗證帳號

3.如果有帳號,將帳號傳送出去

4.取得該帳號個資


有風險

1.直接在前端避掉驗證帳號

2.可以在前端將帳號變更(明碼)

3.可以直接取得帳號個資


jwt

1.在後端做驗證帳號

2.btn_1登入後,將帳號比對後,做jwt加密,回傳token

3.btn_2 將token加入headers回傳,申請取得資料

4.在後端將token解密比對帳號,如果帳號ok

5.將帳號個資回傳


如果將token用工具解密,在Payload內容變更帳號,然後直接線上產生一組新的token

將token回傳,申請取得資料,會無法解密。

(因為必須透過jwt開始時透過key加密方法產生的token才有辦法解密時,透過key來解密)



2020年10月19日 星期一

c# WebApi之介面返回型別詳解IHttpActionResult

 https://www.itread01.com/content/1548408965.html

https://dotblogs.com.tw/grayyin/2016/04/19/144437

[WebAPI]使用HttpClient呼叫WebAPI

 https://dotblogs.com.tw/lapland/2015/08/06/153065

2020年10月14日 星期三

依赖注入

https://www.bilibili.com/video/BV1QZ4y1u72y/?spm_id_from=333.788.videocard.4 

https://www.youtube.com/watch?v=B76TOeGad6M

https://www.bilibili.com/video/BV1ck4y1r79C/?spm_id_from=333.788.videocard.7

https://www.bilibili.com/video/BV1Bf4y1278A/?spm_id_from=333.788.videocard.1

==========================================================

https://haokan.baidu.com/v?vid=9126350290334122060&pd=bjh&fr=bjhauthor&type=video

https://www.facebook.com/will.fans/videos/711522182929613/

https://www.facebook.com/watch/?v=271242413931518

.NET Core(C#) 使用IHttpClientFactory实现爬虫执行GET和POST请求






2020年10月13日 星期二

【C#】在.net framework的控制檯程序中使用HttpClientFactory

 https://www.twblogs.net/a/5c764593bd9eee339917ebe6

https://blog.yowko.com/httpclient/

2020年10月4日 星期日

LINQ

 https://www.youtube.com/watch?v=g1EU9gnZKOg&list=PLZX6sKChTg8GQxnABqxYGX2zLs4Hfa4Ca&index=33

===============================================================

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;


namespace pt

{

    public partial class Form1 : Form

    {

        weberpEntities db = new weberpEntities();

        public Form1()

        {

            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)

        {

            label1.Text = "";

            var allitem = db.bas_item.ToList();

            foreach (var item in allitem)

            {

                label1.Text += item.mname + "\r\n";

            }

        }


        private void button2_Click(object sender, EventArgs e)

        {

            label1.Text = "";

            var item = db.bas_item.Select(p => p.mname).ToList();

            foreach (var fn in item)

            {

                label1.Text += fn + "\r\n";

            }

        }


        private void button3_Click(object sender, EventArgs e)

        {

            label1.Text = "";

            var item = db.bas_item.Where(p=>p.price_sale==500).Select(p => p.mname+":費用"+p.price_sale).ToList();

            foreach (var fn in item)

            {

                label1.Text += fn + "\r\n";

            }

        }


        private void button4_Click(object sender, EventArgs e)

        {

            label1.Text = "";

            var YesOrNo= db.bas_item.All(p => p.price_sale == 500);

            label1.Text = YesOrNo.ToString();

        }


        private void button5_Click(object sender, EventArgs e)

        {

            label1.Text = "";

            var YesOrNo = db.bas_item.Any(p => p.price_sale == 500);

            label1.Text = YesOrNo.ToString();

        }

        private void button6_Click(object sender, EventArgs e)

        {

            label1.Text = "";

            var groups = db.bas_item.GroupBy(p => p.mname).ToList();

            foreach (var g in groups)

            {

                label1.Text += g.Key + ":" + g.Count() + "\r\n";

            }          

        }

        private void button7_Click(object sender, EventArgs e)

        {

            label1.Text = "";

            var count = db.bas_item.Count(p => p.placeid == 1);

            label1.Text = count.ToString();       

        }

    }

}