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位的也要做相同设置。