ASP.NET的模擬應用程式
ASP.NET 應用程式可以選擇以這些應用程式當前正為之操作的客戶的身份執行。通常這樣做的原因是為了避免在 ASP.NET 應用程式程式碼中處理身份驗證和授權問題。而您依賴於 Microsoft Internet 資訊服務 (IIS) 來驗證使用者,然後將已通過驗證的標記傳遞給 ASP.NET 應用程式;或者,如果無法驗證使用者,則傳遞未經身份驗證的標記。不論何種情況,如果啟用了“模擬”,則 ASP.NET 應用程式會模擬所收到的任何標記。當前模擬客戶的 ASP.NET 應用程式依賴於 NTFS 目錄和檔案中的設定來允許客戶獲得訪問許可權或拒絕其訪問。務必將伺服器檔案空間格式化為 NTFS,以便可以設定訪問許可權。
預設情況下禁用模擬。為了 ASP 的相容性,使用者必須顯式啟用模擬。如果為給定的應用程式啟用模擬,則 ASP.NET 總是模擬 IIS 提供給 ISAPI 擴充套件的訪問標記。該標記既可以是已驗證使用者標記,也可以是匿名使用者的標記(如 IUSR_MACHINENAME)。不論應用程式中使用哪種身份驗證型別,模擬都會發生。
只能模擬應用程式程式碼,編譯和配置作為程式標記讀取。編譯的結果放在“Temporary ASP.NET files”目錄中。所模擬的帳戶需要對該目錄的讀/寫訪問權。如果應用程式位於通用命名規則 (UNC) 共享上,除非使用配置帳戶,否則,ASP.NET 將總是模擬提供給 IIS 的標記來訪問該共享。如果提供了顯式配置的帳戶,ASP.NET 將使用該帳戶取代 IIS UNC 標記。確實需要基於每個請求的模擬應用程式可以直接配置為模擬提交請求的使用者。
預設情況下,在計算機級別上禁用模擬。而且除非被重寫,否則所有的應用程式域都繼承此設定。可以通過將配置檔案放置在應用程式根目錄下來啟用模擬。有關 ASP.NET 配置系統的更多資訊,請參見 ASP.NET 配置。
與其他配置指令的情況相同,此指令分層應用。除非被顯式重寫,否則,層次結構中的巢狀程式將遵從它。此設定的預設值如下所示。
為應用程式啟用模擬的最小配置檔案可能看上去和下面的示例類似。
還有以可配置身份執行應用程式的名稱支援。例如:
這將允許整個應用程式以 contoso\Jane 執行,不論請求的身份如何,只要密碼正確即可。可以將這種型別的模擬委託給另一臺計算機。
您可以以程式設計的方式讀取被模擬使用者的標識,如下例所示。
在上例中,userName 和 password 以明文形式儲存在配置檔案中。雖然 IIS 不傳輸 .config 檔案來響應使用者代理請求,但是可以通過其他途徑讀取配置檔案,例如通過在包含伺服器的域上具有適當憑據的已經過身份驗證的使用者。為了增強安全性,標識部分支援在登錄檔中儲存加密的 userName 和 password 屬性,如下例所示。
字串中位於關鍵字 registry 之後和逗號之前的部分表示 ASP.NET 開啟的登錄檔項的名稱。逗號之後的部分包含一個字串值的名稱,ASP.NET 從此名稱中讀取憑據。必須有逗號,並且憑據必須儲存在 HKLM 配置單元中。如果配置格式不正確,則 ASP.NET 不會啟動輔助程式,然後將顯示造成當前帳戶建立失敗的程式碼路徑。
憑據必須為 REG_BINARY 格式,並且包含 Windows API 函式 CryptProtectData 呼叫的輸出。可以用 ASP.NET 設定登錄檔控制檯應用程式 (Aspnet_setreg.exe) 來建立加密憑據並將它們儲存在登錄檔中。該應用程式使用 CryptProtectData 完成加密。若要同 Visual C++ 原始碼和文件一起下載 Aspnet_setreg.exe,請訪問 Web 站點 www.asp.net並搜尋“aspnet_setreg”。
應該對儲存加密憑據的金鑰的訪問許可權進行配置,僅向 Administrators 和 SYSTEM 提供訪問權。由於金鑰會被作為 SYSTEM 執行的 ASP.NET 程式讀取,因此應設定以下許可權:
Administrators:F
SYSTEM:F
CREATOR OWNER:F
ProcessAccount:R
這可以提供兩道保護資料的防線:
ACL 許可權要求訪問資料的身份是 Administrator。
攻擊者必須在伺服器上執行程式碼 (CryptUnprotectData) 才能恢復帳戶的憑據。以上介紹ASP.NET的模擬應用程式
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-610960/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 模擬軟體應用案例輯
- 模擬量輸出的常用應用場合
- 構建安全的ASP.NET應用程式ASP.NET
- ASP.NET的應用程式域須知ASP.NET
- 開發安全的ASP.NET應用程式ASP.NET
- Saber電源模擬之——基礎應用
- 元宇宙技術對於虛擬模擬應用的影響元宇宙
- Verilog-A/AMS在RF模擬中的應用
- 用程式模擬蒲豐投針試驗
- ASP.NET Core 應用程式狀態ASP.NET
- 模擬supervisor的程式管理
- 談談模擬足球遊戲中人工智慧的應用(轉)遊戲人工智慧
- mumu模擬器 指定應用當前執行的 ABI 版本
- 通過一個模擬程式讓你明白ASP.NET MVC是如何執行的ASP.NETMVC
- asp.net session的應用ASP.NETSession
- 編寫多執行緒應用程式,模擬多個人通過一個山洞:執行緒
- 編寫適用於模擬器的 Linux 程式碼(轉)Linux
- Asp.net本質論之應用程式物件ASP.NET物件
- ASP.NET Core應用程式8:標籤助手ASP.NET
- 基於模擬的數字孿生系統構建與應用
- 圖撲 Web 視覺化引擎在模擬分析領域的應用Web視覺化
- 用Google Chrome移動模擬工具做更好的響應式設計GoChrome
- 用最少的程式碼模擬gRPC四種訊息交換模式RPC模式
- ASP.NET MVC - PageData的應用ASP.NETMVC
- 亞馬遜書評——《程式碼本色:用程式設計模擬自然系統》亞馬遜程式設計
- 模擬費用流小記
- 5種設定ASP.NET Core應用程式URL的方法ASP.NET
- 【ASP.NET Core】配置應用程式地址的N多種方法ASP.NET
- ASP.NET跨應用程式進行登入的解決ASP.NET
- 車輛動力學模型在模擬測試中的應用實踐模型
- 作業排程模擬程式
- 用一個div模擬textarea的實現
- 用 150 行 Python 程式碼寫的量子計算模擬器Python
- 實驗三 程式模擬排程程式
- 實驗三 程式排程模擬程式
- Keil的軟體模擬和硬體模擬
- [翻譯]ASP.NET 2.0網站應用程式的效能優化ASP.NET網站優化
- CSS & JS Effect – 用 wheel 模擬 scrollCSSJS