asp.net Access to the path '*' is denied 解决方案:
最近在做一个上传文件的asp.net网站,
在本地测试正常,但一上传到服务器上的时候,那个就提示
Access to the path '路径' is denied.
网上找了很多资料,原来是因为在该文件的上级文件夹没有修改权限,
也就是说,那个user用户没有修改的权限.
现在呢有两个解决方法:
1.
我们只要把上面的全部勾上就可以了
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) 加密函数加密。
|
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 目录中。所模拟的应用程序标识需要对该目录的读/写访问权限。所模拟的应用程序标识还需要至少对应用程序目录和子目录中的文件的读访问权限。