簡體   English   中英

Asp.Net臨時文件的ApplicationPoolIdentity權限

[英]ApplicationPoolIdentity permissions on Temporary Asp.Net files

在工作中,我遇到以下問題:我們有一個在Windows Server 2008 64位計算機上運行的Web應用程序。 該應用程序的ApplicationPool在ApplicationPoolIdentity下運行,並配置為.net 2和經典管道模式。

在XmlSerialization要求創建Serializer程序集的時候,這種方法可以正常工作,在該程序集中,使用MEF創建了已知類型的集合。

為了解決這個問題,我希望向ASP.Net臨時文件目錄授予ApplicationPoolIdentity權限就足夠了,但是可惜...

我所做的是從cmd提示符下運行以下命令:

icacls "c:\windows\microsoft.net\framework64\v2.0.50727\Temporary ASP.NET Files" /grant "IIS AppPool\MyAppPool":(M)

顯然這是行不通的,否則您將不會閱讀此內容:)

奇怪的是,每當我授予用戶或更具體的身份時,身份驗證的用戶組就可以使用這些權限。 在我看來,奇怪的是,在我開始授予訪問權限之前,ApplicationPoolIdentity已經是IIS_IUSRS的成員,而IIS_IUSRS確實具有對臨時asp文件目錄的修改權限。

現在,我想知道為什么這種情況需要Authenticated Users組的Modify權限。 我以為是因為apppool帳戶缺少其他權限(為此搜索返回了一些結果,所以我嘗試了這些結果),但是向Windows \\ Temp目錄和/或應用程序目錄本身授予ApplicationPoolIdentity修改權限並不能解決問題。

現在,我們有一個解決方法,但是我討厭我不知道這里到底發生了什么,所以我希望大家能對此有所了解。

提前感謝!

如果應用程序池作為AppPool身份運行,則應立即使用,因為工作進程將被注入IIS_IUSRS SID,該ID具有正確的寫權限。

我的猜測是,該應用程序必須使用Windows身份驗證,並且已在ASP.NET中啟用了模擬功能,以便可能以發出請求的特定用戶身份運行代碼,而不必使用進程標識。

我猜對了該應用程序正在運行Windows身份驗證嗎? 並且在asp.net中啟用了模擬功能?

可能與您不相關-但是,如果您以用戶身份運行應用程序池,則規則會在啟動時自動將IIS_IUSRS令牌注入到進程中而更改。 最近,當移至.net 4時,我們陷入困境,並且沒有新的Temporary ASP.net Files目錄的權限。

解決方法請參見此處: http : //www.yusufozturk.info/iis7/asp-net-write-access-error-on-iis7-5.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM