主题:  关于ASP.NET中配置文件的问题

huanhuan_5d

职务:普通成员
等级:1
金币:0.0
发贴:5
#12004/12/14 13:25:23
在IIS虚拟目录的根目录中的web.config中的配置文件如下:
<?xml version="1.0" encoding="gb2312"?>
<configuration>
<location path="manage"> //配置子目录manage中应用如下选项
<system.web>
<compilation defaultLanguage="c#" debug="true" />
<customErrors mode="Off" />

<authentication mode="Forms"> //这里报错It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.

<forms loginUrl="default.aspx" path="manage" />
</authentication>

<authorization>
<deny users="?" />
</authorization>
<trace enabled="true" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
<globalization requestEncoding="gb2312" responseEncoding="gb2312" />
</system.web>
</location>
<system.web>
<sessionState cookieless="true" timeout="100" />
</system.web>
<appSettings>
<add key="sqlConnectionString" value="server=localhost;uid=sa;pwd=;database=fdc" />
</appSettings>
</configuration>


hotinfo

蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#22004/12/14 14:12:17
错误说明没有把权限也就是窗体验证应用到网站的全部目录,有部分目录没有设置验证方法。
就改为path="/"


非常大鱼

huanhuan_5d

职务:普通成员
等级:1
金币:0.0
发贴:5
#32004/12/14 14:31:01
我是想在目录manage中应用这个配置,凡进入manage目录操作就要登陆manage/default.aspx成功才能进入,/目录下其他文件可以不用限制访问


hotinfo

蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#42004/12/14 15:36:30
限制用户还需要进行设置如
<allow users="test" />
<allow roles="Admins" />
<deny users="*" />
可以允许或禁止一些用户。

需要在某页面访问的权限,需要进行Cookie等的判断,在Web.config中可以设置
<security>
<authentication mode="Cookie">
<cookie decryptionkey="autogenerate" loginurl="login.aspx"
cookie="MyTestCookie" />
</authentication>
</security>
可以进行Cookie的加密

这样并不说验证全凭设置可以解决了,因需要从用户库里去验证用户的合法性,还是需要依赖ADO+和Cookies用程序来验证。实现程序验证,.net专门有一套验证类和接口,如User类,System.Security.Principal.IPrincipal、System.Security.Principal.IIdentity等接口来验证用户,提高安全性。当然也可以不用,前提是自身程序用足够安全性。这些安全我也正在学习,就不多说了,可以去查些资料或看MSDN文档。总之,复杂的用户验证,比如数据库用户就需要结合.Net安全体系与程序验证。


非常大鱼