原有程式為Windows驗證,增加上傳功能後,出現下面錯誤。Access to the path 'UploadFiles' is denied. 存取被拒絕。
原因為:權限不足
解決方法:
1、增加UploadFiles檔案夾Asp.net賬戶及IUSR_SHTEST賬戶的讀寫權限,如下圖
2、在Config加增加identity impersonate="true" <authentication mode="Windows"/>
<identity impersonate="true"/>
運行,問題解決!
註:
<identity>:用來控制ASP.NET應用的“身份”。決定ASP.NET應用使用哪一個使用者帳號來運行。
屬性 |
說明 |
impersonate |
必選的屬性。 指定是否對每一個請求使用用戶端類比。 此屬性可以為下列可能值之一。
值 |
說明 |
false |
指定不使用用戶端類比。 |
true |
指定使用用戶端類比。 |
|
password |
可選的屬性。 如果 impersonate 屬性為 true,則指定要使用的密碼。 有關在註冊表中儲存加密的輔助進程憑據的資訊,請參見 userName 屬性。 |
userName |
可選的屬性。 如果 impersonate 屬性為 true,則指定要使用的使用者名稱。 此屬性和 password 屬性以明文形式儲存在設定檔中。雖然 Microsoft Internet 資訊服務 (IIS) 不傳輸 .config 檔案來響應使用者代理程式請求,但是可以通過其他途徑讀取 .config 檔案。例如,通過在包含伺服器的域上具有適當憑據的已經過身分識別驗證的使用者。由於安全原因,identity 屬性支援在註冊表中儲存加密的 userName 和 password 屬性。憑據必須是 REG_BINARY 格式,並用 Microsoft Windows 2000 和 Windows XP 資料保護 API (DPAPI) (DPAPI) 加密函數加密。 |
ASP.NET 類比:
使用類比時,ASP.NET 應用程式可以用發出請求的使用者的 Windows 標識(使用者帳戶)執行。類比通常用於依賴 Microsoft Internet 資訊服務 (IIS) 來對使用者進行身分識別驗證的應用程式。
預設情況下禁用 ASP.NET 類比。如果對某 ASP.NET 應用程式啟用了類比,該應用程式將運行在標識上下文中,其訪問標記被 IIS 傳遞給 ASP.NET。該標記既可以是已通過身分識別驗證的使用者標記(如已登入的 Windows 使用者的標記),也可以是 IIS 為匿名使用者提供的標記(通常為 IUSR_MACHINENAME 標識)。
當啟用類比時,只有應用程式代碼運行在被類比的使用者的上下文中。將使用 ASP.NET 進程的標識編譯應用程式和載入配置資訊。有關更多資訊,請參見配置 ASP.NET 進程標識。編譯的應用程式將放在 Temporary ASP.NET files 目錄中。所類比的應用程式識別碼需要對該目錄的讀/寫存取權限。所類比的應用程式識別碼還需要至少對應用程式目錄和子目錄中的檔案的讀存取權限。