2025年12月31日 星期三

[研究]Windows 11 25H2從Microsoft帳戶(email)改成本機帳戶登入

[研究]Windows 11 25H2從Microsoft帳戶(email)改成本機帳戶登入

2025-12-31

1.開啟設定,按 Windows + I 開啟「設定」。

2.進入帳戶設定,點選「帳戶」,點選「您的資訊」。

3.點選 「改為使用本機帳戶登入」。

4.重新登出並登入











注意,Windows Reboot 後,預設仍是「Microsoft帳戶」(email)登入,但此時可以切換改選用「密碼」(本機帳戶) 登入。

(完)

[研究]IIS 10套用GCB綜合分析

[研究]IIS 10套用GCB綜合分析

2025-12-08

Windows Server 從Windows Server 2016開始,IIS為10.0版,後續 Windows Server 2019, Windows Server 2022, Windows Server 2025 也都是 10.0版,大版本號碼相同,小版本可能不同,畫面幾乎相同。

政府組態基準(Government Configuration Baseline,簡稱GCB)

TWGCB-04-014_Microsoft IIS 10政府組態基準說明文件v1.1_1141002

https://www.nics.nat.gov.tw/core_business/cybersecurity_defense/GCB/GCB_Documentation/

https://download.nics.nat.gov.tw/api/v4/file-service/UploadFile/attachfilegcb/TWGCB-04-014_Microsoft%20IIS%2010%E6%94%BF%E5%BA%9C%E7%B5%84%E6%85%8B%E5%9F%BA%E6%BA%96%E8%AA%AA%E6%98%8E%E6%96%87%E4%BB%B6v1.1_1141002.pdf

https://download.nics.nat.gov.tw/api/v4/file-service/UploadFile/attachfilegcb/TWGCB-04-014_Microsoft%20IIS%2010%E6%94%BF%E5%BA%9C%E7%B5%84%E6%85%8B%E5%9F%BA%E6%BA%96%E8%AA%AA%E6%98%8E%E6%96%87%E4%BB%B6v1.1_1141002.docx

類別項次 類別 項數 起訖項次編號 合計
1 基本設定 7 No.1 ~ 7 53
2 設定驗證與授權 5 No.8 ~ 12
3 ASP.NET設定建議 12 No.13 ~ 24
4 要求篩選與其他限制模組 11 No.25 ~ 35
5 IIS記錄 4 No.36 ~ 39
6 FTP要求 2 No.40 ~ 41
7 傳輸加密 12 No.42 ~ 53

********************************************************************************
設定位置 分析
項次 設定位置 影響檔案或設定
1 站台 C:\Windows\System32\inetsrv\Config\applicationHost.config
2 站台 C:\Windows\System32\inetsrv\Config\applicationHost.config
3 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
4 應用程式集區 C:\Windows\System32\inetsrv\Config\applicationHost.config
5 應用程式集區 C:\Windows\System32\inetsrv\Config\applicationHost.config
6 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
7 站台 網站根目錄\Web.config
8 站台 網站根目錄\Web.config
9 站台 網站根目錄\Web.config
10 站台 網站根目錄\Web.config
11 站台 C:\Windows\System32\inetsrv\Config\applicationHost.config
12 站台 網站根目錄\Web.config
13 系統檔案 預設值和GCB不同。
machine.conifg (根據x86、x64和.NET版本差異而不同),會影響Web.Config設定;僅能設定在正式機,不可設定於開發機 (需要 Debug功能)
14 站台 網站根目錄\Web.config,預設和GCB相同
15 站台 網站根目錄\Web.config
16 站台 網站根目錄\Web.config
17 ▪  伺服器
▪  站台
▪  網頁
網站根目錄\Web.config
18 站台 網站根目錄\Web.config
19 站台 網站根目錄\Web.config
20 站台 網站根目錄\Web.config
21 站台 網站根目錄\Web.config
22 站台 網站根目錄\Web.config
23 伺服器 網站根目錄\Web.config
24 站台 網站根目錄\Web.config
25 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
26 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
27 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
28 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
29 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
30 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
31 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
32 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
33 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
34 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
35 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
36 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
37 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
38 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
39 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
40 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
41 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
42 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config
43 regedit registry(登錄值)
44 regedit registry(登錄值)
45 regedit registry(登錄值)
46 regedit registry(登錄值)
47 regedit registry(登錄值)
48 regedit registry(登錄值)
49 regedit registry(登錄值)
50 regedit registry(登錄值)
51 regedit registry(登錄值)
52 regedit registry(登錄值)
53 regedit registry(登錄值)

********************************************************************************
【分析】

【分析1需要改 Source Code的】

「設定位置」分析
設定值讀取儲存位置 數量 備註
網站根目錄\Web.config 17 一但 CODE更新,設定會被覆蓋掉,治標是照 GCB 文件進行測試,治本的方法要修改 Source Code。「TWGCB-04-014_Microsoft IIS 10政府組態基準說明文件v1.1_1141002」沒有說明這部分,要自己研究。
C:\Windows\System32\inetsrv\Config\applicationHost.config 25
registry(登錄值) 11


【分析2需要手工設定的】

儲存於 Web.config 的不算。

下圖,上表中「設定位置」是「站台」的,若設定值不是儲存於 Web.Config 的,也要考慮。

舉例來說, WebSite2「網站」的設定值是儲存C:\Windows\System32\inetsrv\Config\applicationHost.config 中有關  WebSite2 部分,因為「網站」名稱可能不同,此部分應該無法用 GCB 工具 (不管免費、付費) 統一對多台主機套用。


項次 設定位置 影響檔案或設定 備註
1 站台 C:\Windows\System32\inetsrv\Config\applicationHost.config 無預設值,一定要手工設定
2 站台 C:\Windows\System32\inetsrv\Config\applicationHost.config 無預設值,一定要手工設定
4 應用程式集區 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設符合 GCB
5 應用程式集區 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設符合 GCB
11 站台 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設不符合 GCB,一定要手工設定
17 ▪  伺服器
▪  站台
▪  網頁
網站根目錄\Web.config 要在 Web.config, machine.config 搜尋移除某字串,只能手工處理,預設符合 GCB

手工處理的有6個,扣預設符合3個,剩3個。
********************************************************************************
可依靠 GCB 工具的 53-17-(6-1)=31 可能可以用 GCB 工具統一套用。

項次42添加

<configuration>
<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="Strict-Transport-Security" value="max-age=31536000" />
    </customHeaders>
  </httpProtocol>
</system.webServer>
</configuration>


********************************************************************************

評估

項次 類別 原則設定名稱 設定位置 影響檔案或設定 套GCB評估 預設值和GCB相同 要改Web.Config 要改Source Code(非Web.Config部分) 敝人排除建議
1 基本設定 網站內容存放位置 站台 C:\Windows\System32\inetsrv\Config\applicationHost.config GCB建議網站實體路徑「存放在非系統磁區」,但必須手動設定。而且受影響程式必須修改

如果有提供上傳、下載檔案,Source Code可能要跟著修改。
可能 可能 排除(或手工設定)
2 基本設定 主機名稱 站台 C:\Windows\System32\inetsrv\Config\applicationHost.config GCB建議「每個站台都必須設定主機名稱」(FQDN),只能個別機器手工設定 排除(或手工設定)
3 基本設定 瀏覽目錄 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設值「啟用」,GCB建議值「停用」 統一套用
4 基本設定 應用程式集區識別 應用程式集區 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設值和GCB建議值都是ApplicationPoolIdentity,相同

因為「網站」名稱不同,無法統一套用,只能手工設定
排除(或手工設定)
5 基本設定 應用程式集區 應用程式集區 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設值和GCB建議值「每個站台皆設定唯一的應用程式集區」,一般情況相同。

真要確認,需每個站台手工逐一檢查。


排除(或手工設定)
6 基本設定 匿名使用者識別 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設值是 IUSR,GCB建議改成「應用程式集區識別」

檔案上傳目錄權限要重新調整。

若使用「ASP.ENT身份辨識機制 (ASP.NET Identity)」,功能可能異常,CODE要改;因 IUSR 和 IIS APPPOOL\<AppPoolName> 權限的回傳值不同。


因為這是IIS「伺服器」層級設定,一但變更,所有底下的ASP.NET網站全受影響,衝擊可能很大。

儲存於applicationHost.config的<localtion path="SPM">之下
可能 排除
7 基本設定 WebDAV功能 站台 網站根目錄\Web.config 預設值和GCB建議值都是False。

註:為何預設值和GCB相同還建議建議【排除(預設值)】?不是預設值表示有特別需求,再去套預設值,可能會把系統搞癱瘓。故預設值和GCB若相同,都是建議【排除(預設值)】,以下皆如此。
排除(預設值)
8 設定驗證與授權 表單驗證需要SSL 站台 網站根目錄\Web.config 預設值 False,GCB建議值 True,ChatGPT說第三方套件正常運作機率 99%

敝人註:若網站本身已經提供HTTPS連線,功能需求已經重疊,不建議冒風險設定GCB
排除 (出事麻煩)
9 設定驗證與授權 表單驗證Cookie模式 站台 網站根目錄\Web.config cookieless預設值是 UseDeviceProfile,GCB建議改成 UseCookies。

可能受影響的常用套件Microsoft.AspNet.FriendlyUrls / Core / zh-Hant、Microsoft.AspNet.Identity.* / Microsoft.Owin.Security.Cookies、jQuery / Bootstrap.Datepicker / js-cookie / vue
排除(出事麻煩)
10 設定驗證與授權 表單驗證Cookie保護模式 站台 網站根目錄\Web.config 預設值和GCB設定值皆為All 排除 (預設值)
11 設定驗證與授權 基本驗證需要SSL 站台 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設值沒勾選「需要SSL」,GCB建議勾選。 排除
12 設定驗證與授權 credentials元素 站台 網站根目錄\Web.config 預設值沒有,GCB建議「移除元素段落」,相符。 排除 (預設值)
13 ASP.NET設定建議 以retail模式部署Web應用程式 以 retail 模式部署Web 應用程式 系統檔案 預設值 False,GCB建議值 True。

machine.conifg (根據x86、x64和.NET版本差異而不同),會影響Web.Config設定

僅能設定在正式機,不可設定於開發機 (需要 Debug功能)
排除
14 ASP.NET設定建議 偵錯功能 站台 網站根目錄\Web.config 預設值和設定值都是False。

開發機要設定True,正式機設定為False。

【ASP.NET設定建議】類別的 (甚至非此類別的)、【設定位置】是【站台】的,正式機更新CODE,可能會重新載入Web.Config,覆蓋GCB的設定,治本必須要修改 Source Code 的 Web.Config 才行。
排除 (預設值)
15 ASP.NET設定建議 自訂錯誤訊息顯示模式 站台 網站根目錄\Web.config 預設值 RemoteOnly,GCB 建議 On或RemoteOnly,算預設符合。 排除 (預設值)
16 ASP.NET設定建議 HTTP詳細錯誤訊息顯示模式 站台 網站根目錄\Web.config 預設值 和 GCB 建議都是「本機要求的詳細錯誤及遠端要求的自訂錯誤網頁或自訂錯誤網頁 (DetailedLocalOnly)」。 排除 (預設值)
17 ASP.NET設定建議 ASP.NET堆疊追蹤 ▪  伺服器
▪  站台
▪  網頁
網站根目錄\Web.config 預設值和GCB 建議值相同 排除 (預設值)
18 ASP.NET設定建議 工作階段狀態Cookie模式 站台 網站根目錄\Web.config 預設值和GCB 建議值都是 UseCookie。 排除 (預設值)
19 ASP.NET設定建議 httpOnlyCookies 站台 網站根目錄\Web.config 預設值 False,GCB建議 True,實際檢視某網站 Source Code 的 Web.Config 為 True。

Source Code對開發機、正式機的Web.Config都會設定httpOnlyCookies為True
排除 (預設值)
20 ASP.NET設定建議 電腦金鑰驗證方法(ASP.NET 3.5) 站台 網站根目錄\Web.config 預設值、GCB建議值、實際檢視某網站值 都是 SHA1。

要根據x86或x64、NET Framework是2.0或4.0而設定,設定麻煩,無法統一設定

但 ASP.NET 4.5網站應該看下一項 No.21。
排除 (預設值)
21 ASP.NET設定建議 電腦金鑰驗證方法(ASP.NET 4.5) 站台 網站根目錄\Web.config 預設值 SHA1,GCB 建議值 HMACSHA256、HMACSHA384或HMACSHA512。

要根據x86或x64、NET Framework是2.0或4.0而設定,設定麻煩,無法統一設定

設定後Cookie、ViewState可能無法驗證,必須立刻重新啟動網站
排除 (預設值)
22 ASP.NET設定建議 .NET信任層級 站台 網站根目錄\Web.config 預設值 Full,GCB 建議值 Medium (web_mediumtrust.config)、Low (web_lowtrust.config)或Minimal (web_minimaltrust.config)。但微軟對 .NET 4.0 開始宣導使用 Full Trust,建議排除。

此值設定 Medium 會導致 Aspose.Cells, FreeSpire.PDF, NReco.PdfGenerator, WkHtmlToPdf, System.Reflection.Emit 相關套件(FastMember, LinqKit) 、、無法使用。
排除(否則網站異常)
23 ASP.NET設定建議 X-Powered-By標頭 伺服器 網站根目錄\Web.config 預設值存在「X-Powered-By」HTTP回應標頭,GCB建議把它移除。基本上出問題機率低,可以移除 統一套用
24 ASP.NET設定建議 伺服器標頭 站台 網站根目錄\Web.config 預設值 False,GCB建議值True 統一套用
25 要求篩選與其他限制模組 允許的內容長度上限 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設值和GCB建議值【「允許的內容長度上限(位元組)」30,000,000以下,但須大於0】相同 排除 (預設值)
26 要求篩選與其他限制模組 URL長度上限 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設值和GCB建議值【「URL長度上限(位元組)」4096以下,但須大於0」相同 排除 (預設值)
27 要求篩選與其他限制模組 查詢字串上限 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設值和GCB建議值【「查詢字串上限(位元組)」2048以下,但須大於0】相同 .否 排除 (預設值)
28 要求篩選與其他限制模組 允許高位元字元 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config GCB建議【不勾選「允許高位元字元」】(預設勾選),會導致URL或URL中檔案名稱含繁體中文、日文、韓文、歐洲語系被禁止

此條比較合適純英語系網站
可能 排除 (否則程式可能大改)
29 要求篩選與其他限制模組 允許雙重逸出 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設值和GCB建議值都是【不勾選「允許雙重逸出」】 排除 (預設值)
30 要求篩選與其他限制模組 HTTP TRACE方法 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設沒有,GCB建議新增「TRACE」,設定為「False」

(正式機可設,開發機否)
排除 (或統一套用)
31 要求篩選與其他限制模組 允許未列出的副檔名 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config GCB建議要有副檔名白名單

(每次第三方元件更新、Compile/Build/Deploy 用的程式碼,要清查一次所有副檔名有哪些,太頻繁費時了)
排除
32 要求篩選與其他限制模組 處理常式權限 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設值是「Read和Script」,GCB建議是「不能同時擁有執行/指令碼與寫入權限」,符合。 排除 (預設值)
33 要求篩選與其他限制模組 允許未指定的ISAPI模組 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設值和 GCB 相符,都是 False。 排除 (預設值)
34 要求篩選與其他限制模組 允許未指定的CGI模組 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設值和 GCB 相符,都是 False。 排除 (預設值)
35 要求篩選與其他限制模組 動態IP限制 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設沒有限制,GCB建議【啟用動態IP限制功能,並依需求設定「根據同時要求的數目拒絕IP位址」與「根據超過一段時間之要求數目拒絕IP位址」參數】,並沒有給建議數值。

太小,使用者容易連不上,影響網站使用,建議別設。太大,沒有限制效果,單純浪費效能。

尤其有其他流量清洗或DoS防護機制的網站,建議別設定。
排除
36 IIS記錄 IIS記錄檔位置 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config GCB建議「記錄檔存放至受管制的非系統磁碟區」,個網站或系統設定目錄可能不同。 排除 (或手工套用)
37 IIS記錄 記錄檔選取欄位 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config GCB建議「啟用,並依需求選取記錄欄位」,預設值可符合 排除(預設值)
38 IIS記錄 記錄檔格式 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config GCB建議值和預設值都是「W3C」 排除(預設值)
39 IIS記錄 記錄事件目的地 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設是「僅限記錄檔」,GCB是建議「記錄檔和ETW事件二者」。

可套用,但把IIS Log同時也記錄到 Windows Event Log,不是很有價值。
統一套用
40 FTP要求 FTP SSL設定 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設值和GCB建議都是 SslRequire

(IIS 預設不會安裝 FTP的)
排除(或統一套用)
41 FTP要求 FTP登入嘗試限制 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設值是 False,GCB建議True

(IIS 預設不會安裝 FTP的)
排除
(或統一套用)
42 傳輸加密 HSTS標頭 伺服器 C:\Windows\System32\inetsrv\Config\applicationHost.config 預設沒有,GCB建議設定 HSTS,且 Strict-Transport-Security 的 max-age >= 480

其實一般Web.config都會設定,且值為31536000,在IIS的「伺服器」層設定有些重複。
統一套用
43 傳輸加密 SSLv2 regedit registry(登錄值) 統一套用
44 傳輸加密 SSLv3 regedit registry(登錄值) 統一套用
45 傳輸加密 TLS 1.0 regedit registry(登錄值) 統一套用
46 傳輸加密 TLS 1.1 regedit registry(登錄值) 統一套用
47 傳輸加密 TLS 1.2 regedit registry(登錄值) 統一套用
48 傳輸加密 NULL Cipher regedit registry(登錄值) 統一套用
49 傳輸加密 DES regedit registry(登錄值) 統一套用
50 傳輸加密 RC4加密套件 regedit registry(登錄值) 統一套用
51 傳輸加密 AES 128/128 regedit registry(登錄值) 統一套用
52 傳輸加密 AES 256/256 regedit registry(登錄值) 統一套用
53 傳輸加密 TLS加密套件順序 regedit registry(登錄值) 統一套用

********************************************************************************

上面是自己評估,下面看看 ChatGPT 的建議,感覺名稱被亂改,而且順序也被亂改;後來要求 ChatGPT 照原來順序,結果也亂七八糟順序不對;再把53個名稱列給 ChatGPT,要求照此順序,順序終於對了。略看一下建議。

No.28 和 No.31可套用?敝人不建議。

No.42~53理論上都可以套用,不該有排除。

項次 GCB 設定名稱 建議 套用方式 備註 是否要修改 Source Code
01 網站內容存放位置 可套用 LGPO / 手動 確認網站目錄權限
02 主機名稱 可套用 LGPO 安全稽核目的
03 瀏覽目錄 可套用 LGPO / 手動 禁止目錄瀏覽
04 應用程式集區識別 可套用 LGPO AppPoolIdentity 建議使用
05 應用程式集區 可套用 LGPO 建議獨立 AppPool
06 匿名使用者識別 排除 不套用 WebForms 可能需要匿名存取
07 WebDAV功能 排除 不套用 若網站不使用 WebDAV 可禁
08 表單驗證需要SSL 可套用 Web.config 表單登入安全 是(需 Web.config 設定)
09 表單驗證Cookie模式 可套用 Web.config 控制 Cookie 驗證模式
10 表單驗證Cookie保護模式 可套用 Web.config 建議設定 AllEncryption
11 基本驗證需要SSL 可套用 Web.config 若使用 Basic Auth
12 credentials元素 可套用 Web.config 可統一管理帳號密碼
13 以retail模式部署Web應用程式 可套用 Web.config 避免 debug 訊息外洩
14 偵錯功能 排除 不套用 生產環境禁用
15 自訂錯誤訊息顯示模式 可套用 Web.config 可顯示友善錯誤訊息
16 HTTP詳細錯誤訊息顯示模式 排除 不套用 避免資訊外洩
17 ASP.NET堆疊追蹤 排除 不套用 避免資訊外洩
18 工作階段狀態Cookie模式 可套用 Web.config 控制 Session Cookie 安全
19 httpOnlyCookies 可套用 Web.config 強化 Cookie 安全
20 電腦金鑰驗證方法(ASP.NET 3.5) 可套用 Web.config 控制機碼驗證方式
21 電腦金鑰(ASP.NET 4.5) 可套用 Web.config 控制機碼驗證方式
22 .NET信任層級 可套用 手動 / Web.config 建議 MediumTrust 或自訂安全 否(Web.config 調整即可)
23 X-Powered-By標頭 可套用 Web.config / 手動 移除標頭,避免資訊外洩 是(Web.config)
24 伺服器標頭 可套用 Web.config / 手動 移除 IIS 版本資訊 是(Web.config)
25 允許的內容長度上限 可套用 Web.config 控制 Request 長度
26 URL長度上限 可套用 Web.config 控制 Request URL 長度
27 查詢字串上限 可套用 Web.config 控制 QueryString 長度
28 允許高位元字元 可套用 Web.config 根據應用需求
29 允許雙重逸出 排除 不套用 避免安全漏洞
30 HTTP TRACE方法 排除 不套用 防止 Cross-Site Tracing
31 允許未列出的副檔名 可套用 手動 / Web.config 限制未知檔案執行 是(Web.config)
32 處理常式權限 可套用 手動 不移除 WebForms handler
33 允許未指定的ISAPI模組 可套用 手動 保留必要 ISAPI
34 允許未指定的CGI模組 可套用 手動 保留必要 CGI
35 動態IP限制 可套用 LGPO / 手動 防止暴力登入
36 IIS記錄檔位置 可套用 LGPO / 手動 設定安全路徑
37 記錄檔選取欄位 可套用 LGPO / 手動 根據稽核需求
38 記錄檔格式 可套用 LGPO / 手動 W3C 建議
39 記錄事件目的地 可套用 LGPO / 手動 檔案 / 事件檔 / SQL
40 FTP SSL設定 可套用 LGPO / 手動 若使用 FTP
41 FTP登入嘗試限制 可套用 LGPO / 手動 防止暴力破解
42 HSTS標頭 可套用 Web.config / 手動 全站 HTTPS 是(Web.config)
43 SSLv2 排除 不套用 已廢棄,不安全
44 SSLv3 排除 不套用 已廢棄,不安全
45 TLS 1.0 排除 / 注意 LGPO / 手動 舊瀏覽器可能需要,建議禁用
46 TLS 1.1 排除 / 注意 LGPO / 手動 舊瀏覽器可能需要
47 TLS 1.2 可套用 LGPO / 手動 安全性建議使用
48 NULL Cipher 排除 不套用 禁用不安全加密
49 DES 排除 不套用 禁用弱加密
50 RC4加密套件 排除 不套用 禁用弱加密
51 AES 128/128 可套用 LGPO / 手動 可用安全加密套件
52 AES 256/256 可套用 LGPO / 手動 可用安全加密套件
53 TLS加密套件順序 可套用 LGPO / 手動 建議強加密套件優先

********************************************************************************

(完)

相關

[研究]IIS 10套用GCB設定路徑圖解(1)基本設定

[研究]IIS 10套用GCB設定路徑圖解(2)設定驗證與授權

[研究]IIS 10套用GCB設定路徑圖解(3)ASP.NET設定建議

[研究]IIS 10套用GCB設定路徑圖解(4)要求篩選與其他限制模組

[研究]IIS 10套用GCB設定路徑圖解(5)IIS記錄

[研究]IIS 10套用GCB設定路徑圖解(6)FTP要求

[研究]IIS 10套用GCB設定路徑圖解(7)傳輸加密

[研究]Dell筆記型電腦背後貼紙意義

[研究]Dell筆記型電腦背後貼紙意義

2025-12-31

下圖,Dell筆記型電腦背後貼紙


下圖,電源線中央的電源供應器


DELL 165.0W

DELL

OUTPUT/輸出/輸出:50V-30A/15.0W 9 0V-3.0A/27 0W.

15:0V=3:0A/45.0W;20 0V-6 5A max/130.0W;28.0V-5.893A max/165.0W

Jor 12.0-28 0V-5 85A max /163.8W (AVS mode)

INPUT/輸入/輸入:100-240V~2,2A 50-60Hz

Model no./型號/型號:HA165PM210

(ACADAPTER(電源供應器/交換式電源供應器)

********************************************************************************

ChatGPT

(說明依 Dell 慣例,實際仍以 Dell 內部系統為準)

1️⃣ Dell Pro Max 16 Premium

產品系列 + 機型名稱,表示這台是:

  • Dell Pro(商用/專業系列)
  • Max 16(16 吋等級)
  • Premium(高階配置版本)

用於快速識別定位,不是唯一識別碼

2️⃣ MA16250

  • Model / Platform Code(機型平台代碼)
  • Dell 內部用來區分:
    • 主機板設計
    • 硬體平台
    • 不同地區或世代變化
  • 通常:
    • 官網查保固時不直接用
    • 維修、料件相容性時很重要

3️⃣ MFGYR:2025

  • Manufacturing Year(製造年份)
  • 表示:
    • 出廠製造年份為 2025 年
    • 有時會搭配製造週數(你這張只有年份)

4️⃣ ST:(略)

  • Service Tag(服務編號) ⭐⭐⭐
  • 最重要的一行
  • 每台 Dell 電腦的「唯一身分證」
  • 可用於:
    • 查詢保固狀態
    • 查詢原廠配置(CPU、RAM、SSD)
    • 下載正確驅動程式
    • 維修、報修

📌 在 Dell 官網輸入就能查到完整資訊

https://www.dell.com/support/contractservices/zh-tw

也可以從 Dell 支援首頁開始,再輸入 Service Tag:

https://www.dell.com/support/home/zh-tw

5️⃣ EX:(略)

  • Express Service Code(快速服務碼)
  • 是 Service Tag 的數字轉換版
  • 用途:
    • 打電話給 Dell 客服時使用
    • 客服系統更快定位設備
    • 與 Service Tag 是 一對一對應

6️⃣ MyDell

  • Dell 內建管理 / 支援服務品牌
  • 通常表示:
    • 系統預載 MyDell 軟體
    • 可用於硬體檢測、更新、支援
  • 非硬體識別碼

********************************************************************************

Dell Pro Max 16 Premium,有 16吋和14吋
https://www.dell.com/zh-tw/shop/dell-%E7%AD%86%E8%A8%98%E5%9E%8B%E9%9B%BB%E8%85%A6/dell-pro-max-16-premium-%E7%AD%86%E8%A8%98%E5%9E%8B%E9%9B%BB%E8%85%A6/spd/dell-pro-max-ma16250-laptop

Dell Pro Max 16 Premium MA16250驅動程式下載
https://www.dell.com/support/product-details/zh-tw/product/dell-pro-max-ma16250-laptop/drivers

價錢從數萬到破10萬
https://24h.pchome.com.tw/search/?q=Dell%20Pro%20Max%2016%20Premium%20MA16250&attrs=G10I18794%2CG10I18795%2CG10I18798%2CG10I18797

(完)

2025年12月29日 星期一

[研究]ASP.NET WebForm SQL Server, e.Command.CommandTimeout 加大會產生甚麼問題 ?

[研究]ASP.NET WebForm SQL Server, e.Command.CommandTimeout 加大會產生甚麼問題 ?

2025-12-29

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 20.2

********************************************************************************

ASP.NET WebForm SQL Server, e.Command.CommandTimeout 加大會產生甚麼問題 ?

ChatGPT

在 ASP.NET WebForm 中使用 SqlDataSource 或 SqlCommand 時,如果你在 Selecting 事件或其他地方把 e.Command.CommandTimeout 增加(例如從預設 30 秒改成 120 秒或更長),會產生以下可能問題:

1️⃣ 使用者體驗問題

  • 等待時間變長:如果 SQL 查詢真的慢,使用者就必須等更久才看到結果,可能以為系統當掉或網頁卡住。
  • 瀏覽器或中間件逾時:即使你增加 CommandTimeout,瀏覽器或 IIS 本身也可能有 request timeout(預設 IIS executionTimeout 是 110 秒),可能還是會被中斷。

2️⃣ 資源佔用問題

  • 連線被長時間占用:每個 SQL 查詢都會占用一個 SQL Server 連線,如果多個使用者同時查詢,長時間占用可能造成連線池耗盡。
  • 伺服器負載增加:慢查詢持續跑時,SQL Server CPU、IO、鎖定都可能增加,影響其他查詢效能。

3️⃣ 鎖定/阻塞問題

  • Transaction 鎖定延長:如果你的查詢在 transaction 中,增加 timeout 會讓鎖定維持更久,可能阻塞其他使用者的寫入或更新。
  • Deadlock 機率提升:長時間鎖定可能提高死鎖(deadlock)發生的機率。

4️⃣ 無法解決根本問題

掩蓋慢查詢:增加 CommandTimeout 只是讓查詢有更多時間完成,但 SQL 本身效能沒改善。如果查詢效率低或缺索引,問題仍然存在。

✅ 建議做法

  • 優化 SQL:
    • 加適當索引(尤其是 WHERE、JOIN 欄位)。
    • 避免 SELECT *,只抓必要欄位。
    • 避免過多 JOIN 或子查詢。
  • 分頁查詢:
    • 使用 OFFSET ... FETCH NEXT ... 或分批抓取,避免一次讀太多資料。
  • 非同步或背景查詢:
    • 對耗時查詢,可以用 AJAX + WebMethod 或背景處理,避免阻塞前端。
  • 合理 timeout 設定:
    • 只在必要時增加,比如從 30 秒改成 60 秒,不要設太長(幾百秒)。

(完)

相關

[研究]SSMS中TSQL執行很快,ASP.NET WebForm 的 SqlDataSource + GridView 很慢

[研究]SSMS中TSQL執行很快,ASP.NET WebForm 的 SqlDataSource + GridView 很慢

2025-12-29

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 20.2

********************************************************************************

在 SSMS 中 TSQL 執行很快,但拿去 ASP.NET WebForm 的 SqlDataSource + GridView 很慢,甚至出現下面問題: 

System.ComponentModel.Win32Exception: 等候操作已逾時。

 System.Data.SqlClient.SqlException (0x80131904): 執行逾時到期。 

增加 CommandTimeout 可解決,可能原因 ? 若不改 CommandTimeout ,有其他解法 ?

********************************************************************************

ChatGPT (敝人精簡過)

1️⃣ 可能原因

網路延遲

資料傳輸量大

GridView 的 RowDataBound 事件做大量運算也會慢。

SqlDataSource 的 CommandTimeout 預設 30 秒,一旦資料量大或查詢複雜就容易逾時。

鎖定或阻塞

如果 ASP.NET 同時有其他交易或查詢,可能被鎖住導致逾時。

SSMS 常用的是 單用戶、未鎖定表,所以很快。

2️⃣ 不改 CommandTimeout 的解法

(A) 優化查詢

  • 確保 T-SQL 已經 加索引,避免全表掃描。
  • 避免 SELECT *,只選必要欄位。
  • 使用 分頁查詢(OFFSET-FETCH 或 ROW_NUMBER())。

範例:

SELECT *
FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY Id) AS RowNum, *
    FROM MyTable
) AS T
WHERE T.RowNum BETWEEN 1 AND 50

配合 GridView 分頁,每次只抓一頁資料。

(B) GridView 頁面化

  • 啟用 GridView 的 AllowPaging="true",讓 SqlDataSource 只抓分頁資料。
  • 避免一次拉回整個資料表。

(C) 使用自訂資料來源

  • 不用 SqlDataSource,改用 ObjectDataSource 或自己寫 DataAccess 層,用 SqlDataReader 或 DataTable。
  • 可以針對每頁做分頁 SQL 查詢,減少一次取回資料量。

(D) 檢查網路及伺服器效能

  • 確認 Web Server 與 DB Server 網路延遲低。
  • 避免一次傳回大資料量。
  • 可以使用 SqlDataReader 逐行讀取而不是 DataSet/DataTable。

(E) 確認 SQL Server SET 選項

某些執行計畫差異問題可以透過調整 SET ARITHABORT ON/OFF 修正。

SET ARITHABORT ON;
SELECT ...

可以在 SqlDataSource 的 SelectCommand 前執行。

3️⃣ 結論建議

  • 如果資料量很大或計算複雜,增加 CommandTimeout 是解法之一。
  • 更好的做法是:
    • 分頁查詢 + GridView 分頁
    • 只抓必要欄位
    • 優化索引
    • 減少 GridView 運算量
  • 這樣不但不用增加 Timeout,使用者體驗也會好很多。

重點

SqlDataSource + GridView 慢,很多時候不是 SQL 本身慢,而是 整個資料拉回與前端渲染流程慢。真正解法是 分頁、只抓必要資料、減少 GridView 運算量,而非單純拉長 Timeout

(完)

相關

[研究]SQL Server 中 WHERE 的第一個條件不符,後面條件是否會再檢查 ?

[研究]SQL Server 中 WHERE 的第一個條件不符,後面條件是否會再檢查 ?

2025-12-29

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 20.2

********************************************************************************

SQL Server,TSQL 中 WHERE 的第一個條件不符,後面條件是否會再檢查 ? WHY ? 參考資料來源 ?

ChatGPT

你問的問題涉及 SQL Server 的 WHERE 條件短路(short-circuit evaluation)。我們一步步分析:

1️⃣ T-SQL WHERE 的邏輯

假設有一個查詢:

SELECT *
FROM MyTable
WHERE Condition1 AND Condition2;

問題:如果 Condition1 為 FALSE,Condition2 會不會被評估?

2️⃣ SQL Server 的實際行為

SQL 標準(ANSI SQL)並沒有規定 WHERE 條件的評估順序,也沒有要求短路。

換句話說,SQL 引擎可以自由決定先檢查哪個條件,或者同時檢查多個條件。

SQL Server 實務

SQL Server 通常不保證短路,即使你的第一個條件是 FALSE,也不一定會停止檢查後面的條件。

實務中,如果 WHERE 條件中有可能產生錯誤(例如除以 0、函數呼叫 null 等),就可能在「本來應該不會檢查的條件」發生錯誤。

例子:

SELECT *
FROM MyTable
WHERE 1 = 0 AND 1/0 = 1;

如果 SQL Server 保證短路,這條查詢應該不會錯,因為 1=0 為 FALSE,不會檢查 1/0。

但在 SQL Server 中執行時,仍然會拋出除以 0 的錯誤,表示 SQL Server 沒有保證短路。

3️⃣ 為什麼 SQL Server 不保證短路?

原因在於 SQL Server 的 查詢優化器(Query Optimizer)

查詢優化器會重新排列、合併、拆分條件來找出最有效率的執行計劃。

條件的評估順序可能與你寫的順序完全不同。

這樣做是為了 提高效率,尤其在大量資料時,優化器會考慮索引使用、統計資料、表的大小等因素。

因此,你不能依賴 WHERE 條件的順序來避免後面的錯誤或提高效率。

4️⃣ 正確做法

如果某個條件可能會出錯(例如除以 0 或 NULL 操作),要用 CASE WHEN 或 ISNULL/NULLIF 來避免:

SELECT *
FROM MyTable
WHERE Condition1 AND 
      (CASE WHEN SafeCheck = 0 THEN 0 ELSE 1/ SafeCheck END) = 1;

或者分兩步:

SELECT *
FROM MyTable
WHERE Condition1
  AND SafeCheck <> 0
  AND 1 / SafeCheck = 1;

這樣就不依賴短路。

5️⃣ 官方資料來源

Microsoft Docs — WHERE Clause

"The order in which the conditions are evaluated is not guaranteed."

https://learn.microsoft.com/zh-tw/sql/t-sql/queries/select-transact-sql?view=sql-server-ver16

https://learn.microsoft.com/en-us/sql/t-sql/queries/select-transact-sql?view=sql-server-ver16

Stack Overflow 常見討論:

SQL Server does not guarantee short-circuit evaluation in WHERE clauses.

✅ 總結

  • SQL Server 不保證 WHERE 條件的短路,第一個條件不符合時,後面的條件 可能還是會被檢查。
  • 原因:查詢優化器為了效率,會重新安排評估順序。
  • 若條件可能會出錯,必須顯式處理(如 CASE 或額外判斷),不要依賴順序。

(完)

相關

[研究]隱智科技智能電子棋盤 - 隱智3Plus

[研究]隱智科技智能電子棋盤 - 隱智3Plus

2025-12-29

發現一個圍棋 AI 智能電子棋盤。

湖南隐智科技股份有限公司
http://izis.cn/

隱智3Plus 5G版、野狐標準版
人人對弈、人機對弈、遠程對弈、題庫中心、定式分析、布局訓練 (星陣、Leela(里拉)、Katago(卡塔狗)、AI復盤打譜、第三方對弈(騰訊、奕城、野狐、新博、佳弈)
http://izis.cn/mygoweb/Client/Home/chessinfo.html




露天拍賣,直接搜尋 "隱智"、"隱智智能棋盤"、"十萬名家棋譜智能圍棋棋盤"
https://www.ruten.com.tw/find/?q=%E9%9A%B1%E6%99%BA

3Plus 5G版+棋子一副 NT$42,998
https://www.ruten.com.tw/item/show?22430137997995

對岸進口到台灣,價錢好像有點亂,約2萬多到4萬多;
有的賣家有爭議,要注意;

標準配備是棋盤,其他可能選購、未必包含

  • 圍棋棋子一副(361 顆) — 黑白棋子(部分賣場標示含棋子)
  • 電源適配器 (220V) + 充電線 — 用於棋盤供電(有些賣場會分開列)
  • 台灣用的電源適配器 (110V)

(完)


[研究]元蘿蔔 下棋機器人(象棋、圍棋、國際象棋(西洋棋)、五子棋

[研究]元蘿蔔 下棋機器人(象棋、圍棋、國際象棋(西洋棋)、五子棋

2025-12-29

發現可以和 AI 實體下棋的機器人。

元蘿蔔 AI 下棋機器人(SenseRobot Go 圍棋版)

SenseRobot 的圍棋產品並非公開採用如 Leela Zero、KataGo 等已知圍棋引擎,而是 基於 SenseTime/元萝卜自家開發(custom)AI 引擎。目前公開資訊中沒有官方來源指出具體某套引擎的名稱或引用版本。

元蘿蔔 商湯科技旗下家用機器人品牌
元萝卜 商汤科技旗下家用机器人品牌
https://robot.sensetime.com/

產品種類
https://www.senserobotchess.com/collections/all
SenseRobot AI Go Robot 為 18級到9段 (4合1版價錢更低,棋力可能較弱,不確定)

SenseRobot AI Go Robot ,USD$999 (約 NT$32000)
https://www.senserobotchess.com/products/senserobot-ai-go-robot


【廠家直銷 限時特惠】元蘿卜SenseRobot AI下棋學練機器 象棋圍棋國際象棋五子棋四合一 $3999
https://shopee.tw/product/1145133981/26428584161

露天,搜尋 "SENSEROBOT"
https://www.ruten.com.tw/find/?q=SENSEROBOT

影片,Youtube,搜尋 "SENSEROBOT"
https://www.youtube.com/results?search_query=SenseRobot+

(完)

[研究]JenKins啟動Fortify SAST(SCA)源碼掃描出錯

[研究]JenKins啟動Fortify SAST(SCA)源碼掃描出錯

2025-12-29

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 20.2

********************************************************************************

JenKins啟動Fortify SAST源碼掃描出錯

C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0\Web\Microsoft.Web.Publishing.targets(4531,5): error : PublishProfile 的值已設定為 'FolderProfileDev',必須在 '<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1/Properties/PublishProfiles/FolderProfileDev.pubxml'> 找到此檔案,但是沒有找到 。 [<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1/WebApplication1.csproj]>
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0\Web\Microsoft.Web.Publishing.targets(4538,4): error : 已設定 PublishProfile(FolderProfileDev)。不過 $(WebPublishMethod) 沒有任何有效的值。目前的值是 ""。 [<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1/WebApplication1.csproj]>
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0\Web\Microsoft.Web.Publishing.targets(4545,5): error : Target ValidatePublishProfileSettings Failed [<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1/WebApplication1.csproj]> 專案 "<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1/WebApplication1.csproj"> (預設目標) 建置完成 -- 失敗。 專案 "<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1.sln"> (預設目標) 建置完成 -- 失敗。

建置失敗。

"<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1.sln"> (預設目標) (1) -> "<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1/WebApplication1.csproj"> (預設目標) (2) -> (ValidatePublishProfileSettings 目標) ->
 C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0\Web\Microsoft.Web.Publishing.targets(4531,5): error : PublishProfile 的值已設定為 'FolderProfileDev',必須在 '<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1/Properties/PublishProfiles/FolderProfileDev.pubxml'> 找到此檔案,但是沒有找到 。 [<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1/WebApplication1.csproj]>


"<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1.sln"> (預設目標) (1) -> "<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1/WebApplication1.csproj"> (預設目標) (2) -> C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0\Web\Microsoft.Web.Publishing.targets(4538,4): error : 已設定 PublishProfile(FolderProfileDev)。不過 $(WebPublishMethod) 沒有任何有效的值。目前的值是 ""。 [<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1/WebApplication1.csproj]>


"<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1.sln"> (預設目標) (1) -> "<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1/WebApplication1.csproj"> (預設目標) (2) ->
 C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0\Web\Microsoft.Web.Publishing.targets(4545,5): error : Target ValidatePublishProfileSettings Failed [<http://192.168.99.245:8080/job/Fortify_Solution1/ws/Solution1/WebApplication1/WebApplication1.csproj]>

0 個警告
3 個錯誤

解決方法

[研究]Gitea Server, Git 排除、忽略不上傳檔案設定;允許上傳 ASP.NET WebForms 發行檔 (*.pubxml)
https://shaurong.blogspot.com/2022/09/gitea-server-git.html

(完)

相關

2025年12月26日 星期五

[研究]SQL Server 抓取第 11~20 筆方法

[研究]SQL Server 抓取第 11~20 筆方法

2025-12-26

********************************************************************************

方法 1:OFFSET-FETCH (SQL Server 2012 以上) + ORDER BY

SELECT *
FROM YourTable
ORDER BY SomeColumn
OFFSET 10 ROWS         -- 跳過前 10 筆 (第 1~10 筆)
FETCH NEXT 10 ROWS ONLY;  -- 取得接下來 10 筆 (第 11~20 筆)

********************************************************************************

方法 2:ROW_NUMBER() + CTE 子查詢 (通用,任何版本)

WITH OrderedData AS
(
    SELECT *,
           ROW_NUMBER() OVER (ORDER BY SomeColumn) AS RowNum
    FROM YourTable
)
SELECT *
FROM OrderedData
WHERE RowNum BETWEEN 11 AND 20;

註:CTE(Common Table Expression,公用表達式)是 SQL Server(以及其他 SQL 系統)提供的一種臨時結果集,可以在單一查詢中像表格一樣使用。它本身不是永久表,只存在於該查詢執行期間。

分類Row 數量常見欄位數分頁建議
小型1K–10K10–50OFFSET-FETCH 或 ROW_NUMBER() 都可以
中型10K–500K10–100ROW_NUMBER() + CTE 較穩定;OFFSET-FETCH 可以用於小跳頁
大型500K+100+建議 ROW_NUMBER() + CTE,搭配索引或分區;OFFSET-FETCH 大跳頁效能差

********************************************************************************

(完)

[研究]ASP.NET WebForm,在 MasterPage 中顯示載入 MasterPage 的 .aspx 主檔案名稱 ?

[研究]ASP.NET WebForm,在 MasterPage 中顯示載入 MasterPage 的 .aspx 主檔案名稱 ?

2025-12-26

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 20.2

********************************************************************************

Site1.Master   (MasterPage)

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" 
    Inherits="WebApplication1.Site1" %>

<!DOCTYPE html>

<html>
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <asp:Label ID="lblPageName" runat="server" Text="Label"></asp:Label>
    <form id="form1" runat="server">
        <div>
            <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
            </asp:ContentPlaceHolder>
        </div>
    </form>
</body>
</html>

Site1.Master.cs

using System;
using System.IO;

namespace WebApplication1
{
    public partial class Site1 : System.Web.UI.MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string aspxFileName = Path.GetFileName(Request.Path);

            lblPageName.Text = aspxFileName;
        }
    }
}

********************************************************************************

Default.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" 
    CodeBehind="Default.aspx.cs" Inherits="WebApplication1.Default" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

</asp:Content>

Default.aspx.cs

using System;

namespace WebApplication1
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

結果

(完)

相關

2025年12月24日 星期三

[研究]版號變更

[研究]版號變更

2025-12-24

0.9 和 0.10 誰大 ?

ChatGPT

0.9 比 0.10 大。

原因很簡單,把小數補成同樣位數來看:

0.9 = 0.90

0.10 = 0.10

比較 0.90 > 0.10,所以

👉 0.9 > 0.10

很多人會被「0.10 看起來比較多位數」誤導,其實小數大小只看數值,不看位數。

********************************************************************************

若 v1.0 表正式版本,仍在正式版本 v0.9 下一版是 v1.0 或 v0.10 ?

ChatGPT

在版本號(versioning)語境下,答案和「純數學大小」是不一樣的。

結論先講:

如果 v1.0 表示正式版,那麼:

👉 v0.9 的下一個正式里程碑是 v1.0,而不是 v0.10

****************************************

為什麼不是 v0.10?

版本號通常採用的是「點分段」的規則,而不是小數:

v<major>.<minor>[.<patch>]

所以:

v0.9 表示

  • major = 0(尚未正式)
  • minor = 9

v0.10 表示

  • major = 0
  • minor = 10(仍然是未正式)

它不是「0.10 = 0.1」,而是「第 10 次 minor 更新」。

****************************************

常見實務解讀

情境一:尚未正式版

v0.1 → v0.2 → … → v0.9 → v0.10 → v0.11 → …

只要 major = 0,通常都代表:

開發中

API 不穩定

功能仍可能大改

********************************************************************************

(完)



2025年12月23日 星期二

[研究]Daily user sending limit exceeded. For more information on Gmail

[研究]Daily user sending limit exceeded. For more information on Gmail

2025-12-23

 550-5.4.5 Daily user sending limit exceeded. For more information on Gmail

550-5.4.5 sending limits go to

550 5.4.5  https://support.google.com/a/answer/166852 d2e1a72fcca58-7ff7dfab836sm11612040b3a.36 - gsmtp

DEBUG SMTP: got response code 550, with response: 550-5.4.5 Daily user sending limit exceeded. For more information on Gmail

550-5.4.5 sending limits go to

550 5.4.5  https://support.google.com/a/answer/166852 d2e1a72fcca58-7ff7dfab836sm11612040b3a.36 - gsmtp


Google Workspace 的 Gmail 郵件傳送上限
https://support.google.com/a/answer/166852

(完)

[研究] Fedora 43 Workstation Linux 繁體中文版安裝

[研究] Fedora 43 Workstation Linux 繁體中文版安裝

2025-12-23

Fedora 43 生命週期 2025-10-28 ~ 2026-12-09,約1年多。

官方網站、下載
https://getfedora.org/

Fedora version history - Wikipedia
https://en.wikipedia.org/wiki/Fedora_version_history

Fedora Linux Schedule
https://fedorapeople.org/groups/schedule/

下載
https://dl.fedoraproject.org/pub/fedora/linux/releases/43/Workstation/x86_64/iso/

Fedora (作業系統) - 維基百科,自由的百科全書https://zh.wikipedia.org/wiki/Fedora_(%E4%BD%9C%E6%A5%AD%E7%B3%BB%E7%B5%B1)

Fedora-Workstation-Live-43-1.6.x86_64.iso

2.55 GB (2,742,190,080 位元組)

Click圖片可看100%尺寸原圖,不難安裝,只是做個紀錄。

一開始安裝文字畫面解析度720x400,圖形畫面會自動跳到至少 1280x768 解析度,但安裝過程隨時可以調整解析度 ( 敝人在 VMware Workstaiton Pro的 VM 上安裝)














VMware Tools 顯示 ReInstall,疑似已經安裝了。

(完)

相關

[研究] Fedora 43 Workstation Linux 繁體中文版安裝
https://shaurong.blogspot.com/2025/12/fedora-43-workstation-linux.html

[研究] Fedora 42 Workstation Linux 繁體中文版安裝
https://shaurong.blogspot.com/2025/04/fedora-42-workstation-linux_16.html

[研究] Fedora 42 Workstation Linux 繁體中文版安裝失敗
https://shaurong.blogspot.com/2025/04/fedora-42-workstation-linux.html

[研究] Fedora 41 Workstation Linux 繁體中文版安裝
https://shaurong.blogspot.com/2024/11/fedora-41-workstation-linux.html

[研究] Fedora 40 Workstation Linux 繁體中文版安裝
https://shaurong.blogspot.com/2024/04/fedora-40-workstation-linux.html

[研究] Fedora 39 Workstation Linux 繁體中文版安裝
https://shaurong.blogspot.com/2023/11/fedora-39-workstation-linux.html

[研究] Fedora 38 Workstation Linux 繁體中文版安裝
https://shaurong.blogspot.com/2023/04/fedora-38-workstation-linux.html

[研究] Fedora Server 37 Linux 繁體中文版安裝
https://shaurong.blogspot.com/2022/11/fedora-server-37-linux.html

[研究] Fedora 37 Workstation Linux 繁體中文版安裝
http://shaurong.blogspot.com/2022/11/fedora-37-workstation-linux.html

[研究] Fedora 34 Workstation Linux 安裝
http://shaurong.blogspot.com/2021/07/fedora-34-workstation-linux.html