ASP.Net默认是将访问权限设置为IUSR和networkservice两个身份,分别对应网站和进程池,自己用是没问题,给用户或者朋友用,那就有安全问题了,根据权限定义,是可以跨网站获取数据的,那么就需要将每个用户隔离开,按照下面的去修改,可以将网站身份进行隔离,但是程序池还是要其他办法的,比如每个站点做一个程序池,或者Windows 2008 R2这样的系统可以设置为站点用户,也是可以的。
.Net 1.1用户隔离模式:
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config
137行左右

<location allowOverride="false">
 <system.web>
 <securityPolicy>
 <trustLevel name="Full" policyFile="internal"/>
 <trustLevel name="High" policyFile="web_hightrust.config"/>
 <trustLevel name="Medium" policyFile="web_mediumtrust.config"/>
 <trustLevel name="Low" policyFile="web_lowtrust.config"/>
 <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
 </securityPolicy>
 <!--  level="[Full|High|Medium|Low|Minimal]" -->
 <trust level="Full" originUrl=""/>
 <identity impersonate="true" /><!-- 重点在这一行 -->
</system.web>

 

.Net 2.0:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config
15行左右

<system.web>
 <securityPolicy>
 <trustLevel name="Full" policyFile="internal" />
 <trustLevel name="High" policyFile="web_hightrust.config" />
 <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
 <trustLevel name="Low"  policyFile="web_lowtrust.config" />
 <trustLevel name="Minimal" policyFile="web_minimaltrust.config" />
 </securityPolicy>
 <trust level="Full" originUrl="" />
 <identity impersonate="true" /><!-- 重点在这一行 -->
 </system.web>

 

4.0和2.0一样,不复制了,64位的也要做相同设置。

作者 听涛

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注