web.config文件配置项目中文件夹的访问权限
Web.config常用配置说明

web.config文件是一个XML文件,它的根结点是<configuration>,在<configuration>节点下的常见子节点有:<configSections>、<appSettings>、<connectionStrings>和<system.web>。
其中<appSettings>节点主要用于配置一些网站的应用配置信息,而<connectionStrings>节点主要用于配置网站的数据库连接字符串信息。
<system.web>节点主要是网站运行时的一些配置,它的常见节点有如下:Web.config常用配置<appSettings>节点<appSettings>节点主要用来存储应用程序的一些配置信息,系统常用的一些全局变量,如上传文件的保存路径等。
<appSettings><!--允许上传的图片格式类型--><add key="ImageType" value=".jpg;.bmp;.gif;.png;.jpeg"/><!--允许上传的文件类型--><add key="FileType" value=".jpg;.bmp;.gif;.png;.jpeg;.pdf;.zip;.rar;.xls;.doc"/></appSettings>对于<appSettings>节点中的值可以按照key来进行访问,以下就是一个读取key值为“FileType”节点值的例子:string fileType=ConfigurationManager.AppSettings["FileType "];<authentication>节点设置身份验证模式,有四种身份验证模式,它们的值分别如下:Mode 说明Windows 使用Windows身份验证,适用于域用户或者局域网用户。
配置webconfig

配置webconfig记录下webconfig的配置(复制很久的笔记):1、配置Session在url传递在web.config中的 <system.web> 节点下添加,⼿动修改session的相关设置<sessionState timeout="5" cookieless="true"> </sessionState>2、配置上传⽂件⼤于4M,⾥⾯是字节数,⽐如下⾯10M是1024*1024*10<system.web><httpRuntime targetFramework="4.5" maxRequestLength="10485760"/></system.web>3、⽐如上传1g的内容。
请求的筛选模块是被直接拒绝,不会到后台指定的页⾯的,跟上⾯的界⾯配置要相同才⾏<configuration><system.webServer><security><requestFiltering><requestLimits maxAllowedContentLength="1073741824"></requestLimits></requestFiltering></security></system.webServer></configuration>4、⾃定义⼀般处理程序类及配置①新建⼀个类,继承IHttpHandler,实现⾥⾯的ProcessRequest⽅法与IsReusable属性。
属性中如果get{return false;}表⽰每次浏览器的请求都会新创建这个⼀般处理程序的类的对象,为true每次浏览器请求都是重⽤第⼀次创建的类的对象②⽐如⽤户需要xxx.hh这样⼦在浏览器中访问,我们新建的这个类继承IhttpHandler接⼝之后实现⾥⾯的代码专门接管处理这样的需求。
Web.config详解

一、认识Web.config文件Web.config 文件是一个XML文本文件,它用来储存 Web 应用程序的配置信息(如最常用的设置 Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。
当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。
如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。
它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。
(一).Web.Config是以XML文件规范存储,配置文件分为以下格式1.配置节处理程序声明特点:位于配置文件的顶部,包含在<configSections>标志中。
2.特定应用程序配置特点: 位于<appSetting>中。
可以定义应用程序的全局常量设置等信息.3.配置节设置特点: 位于<system.Web>节中,控制运行时的行为.4.配置节组特点: 用<sectionGroup>标记,可以自定义分组,可以放到<configSections>内部或其它<sectionGroup>标记的内部.(二).配置节的每一节1.<configuration>节根元素,其它节都是在它的内部.2.<appSetting>节此节用于定义应用程序设置项。
对一些不确定设置,还可以让用户根据自己实际情况自己设置用法:I.<appSettings><add key="Conntction" value="server=192.168.85.66;userid=sa;password=;database=Info;"/><appSettings>定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码. II.<appSettings><add key="ErrPage" value="Error.aspx"/><appSettings>定义了一个错误重定向页面.3.<compilation>节格式:<compilationdefaultLanguage="c#"debug="true"/>I.default language: 定义后台代码语言,可以选择C#和两种语言.IIdebug : 为true时,启动aspx调试;为false不启动aspx调试,因而可以提高应用程序运行时的性能。
webconfig权限控制(转)

webconfig权限控制(转)今天偶然看了一篇关于Forms应用的文章收益颇多,写出来给大家分享。
说起对网站权限,记得以前做法是每个页面都进行判断,对webconfig 的使用少之又少今天说说webconfig 对网站权限的判断。
户文件夹(我们暂定user 文件夹):只有用户登录以后才能访问。
否则该访客只能访问user文件夹的登录页面(user_login.aspx)管理员文件夹(暂定admin文件夹):管理员文件夹不让任何人服务,当用户登录以后只能访问管理员登陆页(admin_login.aspx),管理员登陆后才能访问全部页面。
根目录:根目录可以让任何人访问。
目录结构如下:第一步:根目录下config 代码:<authentication mode="Forms"><forms name="UserCookies"loginUrl="Default.aspx"></forms></authentication> <authorization><allow users="*"/> </authorization> 第二部:Global.asax 头部添加<%@ Import Namespace="System.Security.Principal" %> void Application_AuthenticateRequest(object sender, EventArgs e) { if (er != null){ //如果用户通过验证,则该项不为nullif (er.Identity.IsAuthenticated){ if (er.Identity is FormsIdentity){ FormsIdentity id = (FormsIdentity)er.Identity; FormsAuthenticationTicket ticket = id.Ticket;string userData = erData;//取出角色数据string[] roles = userData.Split(',');er = new GenericPrincipal(id, roles);//重新分配角色} } } } 第三部:admin文件夹config 文件<?xml version="1.0" encoding="utf-8"?><configuration><appSettings/&g t;<connectionStrings/><locationpath="admin_login.aspx"> <system.web><authorization> <allow roles="user"/></authorization></system.web></location><system.web><authorization> <allow roles="admin"/><deny users="*"/></authorization></system.web></configuration& gt; admin_login.aspx cs 代码如下:protected voidButton1_Click(object sender, EventArgs e) { if (tbUserName.Text == "xiaomiao") { //生成验证票据,其中包括用户名、生效时间、过期时间、是否永久保存和用户数据等。
2021年WEB CONFIG安全相关配置WEB安全电脑资料

Web config安全相关配置WEB安全电脑资料web.config 位于根目录1、authentication节点基于窗体(Forms)的身份验证配置站点,当没有登陆的用户访问需要身份验证的网页,网页自动跳转到登陆网页。
其中元素loginUrl 表示登陆网页的名称,name表示Cookie名称2、authorization 节点allow 向授权规则映射添加一个规则,该规则允许对资源进行访问。
deny 向授权规则映射添加一条拒绝对资源的访问的授权规则。
users="*" 是指任何用户 users="?" 是指经身份验证的用户注意: 运行时,授权模块从最本地的配置文件开始,循环访问allow 和 deny 元素,直到它找到适合特定用户帐户的第一个访问规则。
然后,该授权模块根据找到的第一个访问规则是 allow 还是deny 规则来允许或拒绝对 URL 资源的访问。
默认的授权规则为。
因此,默认情况下允许访问,除非另外配置。
如果在根目录下的web.config配置太繁琐,可以配置到相应目录下,例如User目录下的web.config文件3、customErrors 节点mode="On|Off|RemoteOnly">defaultRedirect 可选的属性。
指定出错时将浏览器定向到的默认 URL。
如果未指定该属性,则显示一般性错误。
Mode 必选的属性。
指定是启用或禁用自定义错误,还是仅向远程客户端显示自定义错误。
此属性可以为下列值之一。
值说明On 指定启用自定义错误。
如果未指定 defaultRedirect,用户将看到一般性错误。
Off 指定禁用自定义错误。
这允许显示标准的详细错误。
RemoteOnly 指定仅向远程客户端显示自定义错误并且向本地主机显示 错误。
这是默认值。
默认值为 RemoteOnly。
error 可选的元素。
apache部署web访问权限配置

apache部署web访问权限配置一、修改http.conf配置文件第一步:找到apache的配置文件httpd.conf(文件在conf目录下)第二步:你首先必须得让服务器支持mod_rewrite,如果你使用的是虚拟主机,请事先询问你的主机提供商。
打开httpd.conf,找到#LoadModule rewrite_module modules/mod_rewrite.so把#去掉找到AllowOverride None 改成AllowOverride All,如果禁止所有访问,Options Indexes FollowSymLinks 改为Option None。
注意:文中只有一个< Directory /> 即可,去掉下面这个#<Directory /># Options FollowSymLinks# AllowOverride None# Order deny,allow# Deny from all# Satisfy all#</Directory>添加下面这个,如已经有则修改即可(即需要权限控制的目录),如:<Directory "D:/soft/Apache/htdocs/portal/valid">Options Indexes FollowSymLinks Includes IncludesNOEXEC#Order allow,deny#Allow from allAllowOverride all</Directory>二、添加权限控制文件(.htaccess)编写添加全名为.htaccess 文件,linux下可直接创建,windows下不能直接创建可另存为;文件存放在需要权限控制的目录下。
文件内容如下几种配置方式:1. 需要用户输入用户名、密码可访问AuthUserFile D:/soft/Apache/bin/.passwdAuthType BasicAuthName "Database Security Zone"ErrorDocument 403 D:/soft/Apache/htdocs/portal/err_403.htmlrequire valid-userAuthUserFile:为密码文件存放位置,绝对路径AuthType:认证类型(一般)AuthName:认证名称,引号内为一般注释备注说明ErrorDocument:错误文件指向,绝对路径require valid-user:请求时,认证方式:用户认证(valid-user)或组认证(valid-group). 2. 禁止访问某个类库目录创建Directory块,比如禁止访问某个类库目录,可以这样实现<Directory /var/www//inc>Order Deny,AllowDeny from all</Directory>上述代码实现了禁止所有用户访问下inc目录的功能。
ASP.NET权限设置

权限设置利用web.config文件对整个程序集进行配置在Web程序里,每个根目录都有一个web.config。
但一般的程序只有一个web.config配置文件。
有多个文件夹里,子目录的web.config继承了母目录中的web.config。
如果子母有冲突的话,则以子目录的web.config的规则为准。
一个网站不允许两种访问方式。
;//用于获取当前用户名Form的验证方式不理会Windows用户,全取决于你是否登录,写入Cookie。
using System.Web.Security;FormAuthentication.RedirectFormLoginPage(string userName,bool createPersistentCookie)//此方法将经过身份验证的用户重定向回最初请求的URL或默认的URL。
createPersistentCookie为true时则会创建一个Cookie。
在Windows系统里C:\Documents and Settings\Administrator\Cookies路径可以找到。
Forms验证配置说明loginUrl="login.aspx" [string] 指向登录页面。
defaultUrl="default.aspx" [string] 指定用户通过验证之后默认重定向的URL地址。
protection="All" [All | None |Encryption |Validation] 针对Cookie信息进行加密设置。
timeout="30" [in Minutes][number] 指定Cookie的有效期,以分钟为单位。
path="/" [string] 为由应用程序发出的Cookie指定路径。
requireSSL="false" [true | false] 指定是否使用安全套阶层(SSL)连接来传输身份验证Cookie。
Asp.net中web.config配置文件详解(二)

中web.config配置⽂件详解(⼆)摘⾃近⽇正在看,看到Web.config有很不清楚之处,特意从⽹络、MSDN搜集、归纳和整理,供⼤家分享。
在的web.config中,可以⽤两种⽅式来写连接字符串的配置。
<configuration><appSettings><add key="connstr1" value="Data Source=.;Initial Catalog=DBName;Integrated Security=true"/><add key="connstr2" value="........."></appSettings><connectionStrings><add name="connstr3" connectionString="........" /><add name="connstr4" connectionString="......" providerName="System.Data.Sqlclient"</connectionStrings></configuration>如上代码所⽰:两种⽅式为appSettings和connectionStringsappSettings:①它是1.1的时候⽤的,在vs2003中⽤的②⾥⾯存的相当于键值对的形式,key和value。
不仅仅可以存连接字符串,还可以存储⼀些配置项。
其中value中包括数据库服务器地址、⽤户名和密码、数据库名称等信息。
③在appSettings中,不能使⽤ProviderName="System.Data......."(不过如果你要⽤也可以,只要写在value⾥⾯就可以了,当成值传递过去)④在后台取值⽅式⽤代码:string conn=System.Configuration.ConfigurationManager.AppSettings["connstr";]connectionStrings:①它是2.0中新增的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通过web.config文件配置项目中文件夹的访问权限分类: 2011-09-14 17:46 1980人阅读评论(1) 收藏举报formsmanagerauthorizationencoding该文讲解了通过web.config配置文件配置项目下文件夹的访问权限问题。
新建一个web运用程序,项目结构如下:其中Manager文件夹的页面属于管理员操作页面,所有只用通过登录并授权后才能访问,而根目录下面的页面则任何用户都可以访问,如Default.aspx页面。
首先修改根目录下的web.config配置文件,将默认的windows验证方式修改为Forms验证1.<authentication mode="Windows"/>1.<!--设置认证方式为Forms认证-->2.<authentication mode="Forms">3.<!--指定认证表单-->4.<forms loginUrl="~/Manager/Login.aspx"defaultUrl="~/Manager/Index_Manager.aspx"protection="All"></forms>5.</authentication>6.<!--授权:设置该配置文件同级目录下的所有资源的访问权限-->7.<authorization>8.<!--设置为允许所有用户访问-->9.<allow users="*"/>10.</authorization>然后在Manager文件下面添加新的web.config配置文件,该文件旨在重写外面的web.config——配置同级目录下的资源访问权限(在图中可以看到项目下有两个1.<?xml version="1.0"encoding="utf-8"?>2.<!--3.注意: 除了手动编辑此文件以外,您还可以使用4. Web 管理工具来配置应用程序的设置。
可以使用 Visual Studio 中的5.“网站”->“配置”选项。
6.设置和注释的完整列表在7. ments 中,该文件通常位于8. /Windows//Framework/v2.x/Config 中9.-->10.<configuration>11. <!--12.<appSettings/>13.<connectionStrings/>14. -->15.<system.web>16.<!--添加授权-->17.<authorization>18.<!--阻止匿名用户访问-->19.<deny users="?"/>20.</authorization>21.</system.web>22.</configuration>至此,配置文件都修改完成了,但是还需要有登录授权部分。
下面我们通过Manager文件下面的Login.aspx登录页面给通过验证的用户授权。
1.protected void btnLogin_Click(object sender, EventArgs e)2.{3.//如果用户通过验证4.if (txtUserName.Text.Trim() == "qingyun" && txtPwd.Text.Trim() == "123456")5. {6.//授权7. FormsAuthentication.SetAuthCookie(txtUserName.Text.Trim(), false);8.//登录后跳转9. Response.Redirect("~/Manager/Index_Manager.aspx");10. }11.}至此全部完成!另外,以前写过一篇关于通过web.config文件配置项目中文件的访问权限的blog,有兴趣的朋友可以对比一下。
描述:在开发中我们通常会碰到这样的问题,例如:在项目的根目录下面有一个文件或者文件夹需要用户登陆后才能访问。
如果用户在没有登录的情况下访问该文件或者该文件夹下面的文件时,直接拦截重定向到对应的登陆页面。
例一:我想让用户在访问我的程序的Admin文件夹下的页面时需要登录,而在访问其他页面时则不需要,也就是说Admin文件夹下的文件拒绝匿名访问.下面是配置根目录下的web.config文件中关于授权验证的配置。
1.<system.web>2.<authentication mode="Forms"><!--默认状态下位Windows-->3.<forms loginUrl="Admin/Login.aspx"name=".ASPXFORMSAUTH"></forms>4.</authentication>5.<authorization>6.<allow users="*"/><!--允许任何访问者访问-->7.</authorization>8.</system.web>9.<location path="Admin"><!--注意:该节点最好跟在</system.web>之后,尽管这两个节点可能在web.config文件中相隔比较远,不要觉得有什么疑惑。
下面是对Admin文件夹的访问权限的配置。
-->10.<system.web>11.<authorization>12.<deny users="?"/><!--阻止匿名用户访问-->13.</authorization>14.</system.web>15.</location>注意location节,location节不需要<authorization>节了,假若加了的话,便会出现"在应用程序级别之外使用注册为allowDefinition='MachineToApplication' "这样的错误了,若在子文件下添加配置文件时也要注意相同的问题.这样,当你在地址栏里面直接访问Admin下的任意(非Login.aspx文件)时,将会被重定向到Admin文件夹下的Login.aspx页面。
那到底是如何通过Login.aspx登陆页面授权的呢(被授权后就可以访问Admin文件夹下面的文件了)?Login.aspx页面的后台代码:1.if (userName == "xzl" && pwd == "000")2.{3. FormsAuthentication.RedirectFromLoginPage(userName, false);//授权(这里是关键)4. Response.Redirect("Main.aspx");//通过上面授权后,用户名为xzl的的用户就可以访问Admin文件夹下面的Main.aspx文件了5.}当通过上面方式授权成功后,可以通过如下代码来访问登录的用户名:view plain1.//如果登录成功2.if (User.Identity.IsAuthenticated)3.{4.//输出登录名5.string userName = ;//获取登录名6. Response.Write("欢迎管理员:" + userName + "登录!");7.}当然,也可以通过代码来安全推出:view plain1.System.Web.Security.FormsAuthentication.SignOut();例二:上面的方式是“集中管理”的方式,也就是说在一个配置文件中配置所有页面的访问权限,这儿再介绍一下分散管理的方式,即通过多个web.config来配置文件的访问权限。
首先,web.config的作用我们应该知道两点:1、web.config的设置将作用于所在目录及所在目录下的所有子文件下的资源——一般指.net资源,如aspx、ashx、ascx等文件,对.html、js、css等则不起作用,当然,不同的iis版本下有所不同,在此不做讨论。
2、子目录下的web.config文件将覆盖从父目录继承下来的设置。
接下来,我们新建一个测试项目,项目资源如下图:上图中的Admin文件夹是受保护的,只有通过省份验证的用户可以访问,所以,我们在根目录下的web.config配置文件中做如下配置:view plain1.<authentication mode="Forms"><!--Forms验证-->2.<forms loginUrl="~/Admin/Login.aspx"name=".ASPX"></forms><!--未通过则转向Login.aspx登录页-->3.</authentication>4.<authorization><!--授权:对于此目录及此目录以下的所有资源-->。