做网站与搞安全一般都离不开权限分配,网站权限一般都直接设置站点所在的虚拟目录的,也就是在虚拟目录的安全里添加internet来宾账户,并分配除完全控制外的所有权限;如果是.NET,还必须给ASP.NET用户配置除完全控制以外的权限!
一般情况下,这样就OK了,服务器上的一般网站都可以正常运行了!但现在我发现:C/WINDOWS/TEMP临时文件夹的权限分配对网站能否成功运行也有影响!
但前几天遇到2个情况:
一、ASP站点:
做版聚网站,稻草给的源代码,我过来测试时候,怎么都连不上数据库;我以为数据库连接代码出错,于是一点一点的测试,结果怎么都不行,运行到最后,还是没发现错误!代码如下:
<%
db="inc/xxx.asp"
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionTimeout = 10
Conn.Open connstr
If Conn.Errors.Count <> 0 Then
Conn.Close
Set Conn = Nothing
Response.Write "<font size=2 color=red>数据库连接出错,请检查连接字串。</font>"
Response.End
End If
%>
可是总是显示:数据库连接出错,请检查连接字串.而我尝试了2个多小时,没发现任何错误!后来我想起以前因为temp的权限没给导致后台进不去的,于是我尝试给everyone的读写属性!于是一下子OK了~
二、ASP.NET站点:
做毕业设计,突然出现如下的错误:
CS0016:未能写入输出文件"c:/WINDOWS/xxx目录/xxx.dll"--"拒绝访问."
引用
Compiler Error Message: CS0016: Could not write to output file 'c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/80940643/9a3d5a0a/App_Web_index.aspx.cdcab7d2.p7p862zk.dll' -- '拒绝访问。 '
很郁闷的检查错误,检查web.config文件,感觉不会出问题啊!后来在CSDN上看到篇文章,说解决方法就是:给Windows目录下的临时文件夹Temp的安全选项卡中加入NetWork Service用户并赋予全权.
寒,一试,果然搞定!
总之,temp临时目录的权限真的比较重要,于是写在blog里记下来,如果出现莫名其妙的错误,记得尝试给temp文件夹点权限!