国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET身份模擬

2024-07-10 12:56:35
字體:
來源:轉載
供稿:網友
使用模擬時,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 配置。

與其他配置指令的情況相同,此指令分層應用。除非被顯式重寫,否則,層次結構中的嵌套程序將遵從它。此設置的默認值如下所示。

<impersonation enable="false"/>

為應用程序啟用模擬的最小配置文件可能看上去和下面的示例類似。

<!-- web.config file. -->
<identity impersonate="true"/>

還有以可配置身份運行應用程序的名稱支持。例如:

<identity impersonate="true" username="contoso/jane" password="pass"/>

這將允許整個應用程序以 contoso/jane 運行,不論請求的身份如何,只要密碼正確即可。可以將這種類型的模擬委托給另一臺計算機。

您可以以編程的方式讀取被模擬用戶的標識,如下例所示。

[visual basic]
dim username as string = system.security.principal.windowsidentity.getcurrent().name

[c#]
string username = system.security.principal.windowsidentity.getcurrent().name;

在上例中,username 和 password 以明文形式存儲在配置文件中。雖然 iis 不傳輸 .config 文件來響應用戶代理請求,但是可以通過其他途徑讀取配置文件,例如通過在包含服務器的域上具有適當憑據的已經過身份驗證的用戶。為了增強安全性,標識部分支持在注冊表中存儲加密的 username 和 password 屬性,如下例所示。

username="registry:hklm/software/aspnetidentity,name"
password="registry:hklm/software/aspnetidentity,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) 才能恢復帳戶的憑據。

中國最大的web開發資源網站及技術社區,
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 英山县| 彭泽县| 武山县| 临西县| 全椒县| 南京市| 厦门市| 建阳市| 汾西县| 澄迈县| 益阳市| 通榆县| 禹州市| 灵川县| 七台河市| 临泽县| 个旧市| 临城县| 峡江县| 穆棱市| 石门县| 子长县| 罗源县| 海丰县| 寻甸| 武鸣县| 涞源县| 无为县| 唐河县| 博湖县| 闸北区| 开原市| 容城县| 凭祥市| 济宁市| 通榆县| 永州市| 米脂县| 石家庄市| 分宜县| 当阳市|