IIS7中 ASP.NET授权功能如何实现对静态文件的控制
IIS7中 ASP.NET授权功能如何实现对静态文件的控制
前序
.net提供了3种用户认证的方式,分别是Windows,Forms,Passport。这几种形式的定义可以在网站根目录下Web.config中的authentication节点中看见。我们常用的是forms形式。forms验证就是表单认证,提供了以身份id和密码的形式进行验证和授权管理的功能。
它运行的一个流程:
配置web.config
配置方法如下,没有验证的用户根据配置自动跳转到loginUrl里面的页面去登陆。
<authentication mode="Forms">
<forms loginUrl="~/Login.aspx" defaultUrl="~/Default.aspx"/>
</authentication>
配置授权设置
同样是在web.config中的<system.web>下增加如下节点,“?”的意思指匿名用户,而“*”则表示所有用户。下面这个意思就是说根目录下的所有页面拒绝被匿名用户访问。当然你也可以在users中填写指定的用户ID,不过那样并不常用。还有deny,allow的顺序是先写allow完了再deny,不然就会出现问题。这个大家要记住。
<authorization>
<deny users="?"/>
</authorization>
关键点
现在问题是当我们要控制访问的文件是静态文件,比如图片、html页面时,在Visual Studio自带的Devolopment Server使用一点问题也没有。但是在发布到IIS上时就会出现问题。web.config中配制的授权对静态内容不起作用,明明这个test.html页面被限制匿名访问了,但还是能不登录就看到。分析其原因是因为这些静态内容IIS根本就没有转交给aspnet_isapi进行处理,所以配置的授权对它们根本不起作用。
解决办法
IIS7有两种运行模式:经典模式和集成模式。两种模式下的设置是不一样的。
1、先来看集成模式:此模式下需修改两个模块(UrlAuthorization、FormsAuthentication)的默认配制,取消选择“仅针对向ASP.NET应用程序或托管处理程序发出的请求调用 ”
记住UrlAuthorization、FormsAuthentication这两个模块都要改,刚开始我只改了UrlAuthorization,结果匿名用户倒是访问不了了,但是页面没有自动转到登录页面,显示如下错误:
2、再来看经典模式下,此时类似于IIS6,只要添加上通配符脚本映射就行了。
总结
其实原理很简单,都只是要让IIS把静成内容都转交给asp.net处理就OK了。
IIS7中 ASP.NET授权功能如何实现对静态文件的控制的更多相关文章
- 修改IIS7中ASP的上传文件大小限制
最近在处理一个ASP的项目,用的全新的Windows Server 2008服务器. 今天客户反映图片文件上传不上去,设置服务器端文件夹权限之后文件可以上传了. 但是不久客户就反映有几个文件传不上去, ...
- Asp .Net core 2 学习笔记(3) —— 静态文件
这个系列的初衷是便于自己总结与回顾,把笔记本上面的东西转移到这里,态度不由得谨慎许多,下面是我参考的资源: ASP.NET Core 中文文档目录 官方文档 记在这里的东西我会不断的完善丰满,对于文章 ...
- asp.net core 教程(七)-异常处理、静态文件
Asp.Net Core-异常处理 Asp.Net Core-异常处理 在这一章,我们将讨论异常和错误处理.当 ASP.NET Core应用程序中发生错误时,您可以以各种不同的方式来处理.让我们来看看 ...
- ASP.NET Core 2.1 : 十四.静态文件与访问授权、防盗链
我的网站的图片不想被公开浏览.下载.盗链怎么办?本文主要通过解读一下ASP.NET Core对于静态文件的处理方式的相关源码,来看一下为什么是wwwroot文件夹,如何修改或新增一个静态文件夹,为什么 ...
- ASP.NET Core 1.0基础之静态文件处理
来源 这些HTML , CSS files, image files, 和JavaScript这些静态文件,是ASP.NET能够直接响应给客户端的.本文详述下ASP.NET和静态文件的关系. Serv ...
- MVC项目中,如何访问Views目录下的静态文件!
<!--注意,是system.webServer节点,而非system.web--><system.webServer> <handlers> <add na ...
- express中的中间件(middleware)、自定义中间件、静态文件中间件、路由中间件
express文档地址 什么是中间件呢(middleware)?它是谁的中间件呢? 首先我们需要了解到请求和响应, 请求就是客户端发送请求给服务器, 响应就是,服务器根据客户端的请求返回给客户端的数据 ...
- 在IIS7中ASP.NET MVC3网站中建立gcc编译服务时要注意的问题
1. 正常配置下调用gcc总是失败,虽然在环境变量中配置了gcc路径,但提示找不到gcc编译程序: 2. 使用全路径调用gcc,也是失败,提示cc1.exe编译失败,失败代码53: 3. 通过远程桌面 ...
- asp IIS网站的配置(Win7下启用IIS7配置ASP运行环境)
其实win7下的IIS7配置过程是非常简单的.下面让seo博客来详细的介绍一下win7下配置IIS7环境运行ASP网站的方法,以供初接触者参考 第一次在windows7下配置IIS,虽然有丰富的x ...
随机推荐
- ffmpeg参数具体解释
a) 通用选项 -L license -h 帮助 -fromats 显示可用的格式,编解码的.协议的... -f fmt 强迫採用格式fmt,如image2.gif -i filename 输入文件 ...
- cocos2d-x 颜色
ccBlendFunc cbl = {GL_SRC_ALPHA, GL_ONE}; Sprite *sprite = Sprite::create("128_00002.png") ...
- java传值和通过引用传递
第一次使用int实验: public class TTEST { private static List<UserEntity> mList = new LinkedList<Use ...
- c# 官方命名规则
官方的哦. https://msdn.microsoft.com/zh-cn/library/vstudio/ff926074(v=vs.110).aspx
- kprobe 内核模块
代码来自于linux内核sample/kprobe kprobe_example.c /* * NOTE: This example is works on x86 and powerpc. * He ...
- 怎样选择PHP的版本
原文:怎样选择PHP的版本 IIS 如果想使用IIS配置PHP的话,那么需要选择Non-Thread Safe(NTS)版本的PHP Apache 如果你是用的Apache的版本来自Apache Lo ...
- Git 一些常见的命令
git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r 查看远程所有分支 git ...
- iOS--Swift开发中的单例设计模式
最近在开发一个小的应用,遇到了一些Objective-c上面常用的单例模式,但是swift上面还是有一定区别的,反复倒来倒去发现不能按常理(正常的oc to swift的方式)出牌,因此搜索了一些帖子 ...
- log4e插件的安装和使用
1.首先下载log4e小工具.放入myeclipse10安装文件夹D:\Program Files (x86)\myEclipse10\MyEclipse Blue Edition 10\dropin ...
- php 链接中加参数传递
原文:php 链接中加参数传递 php链接中加参数是在源链接中加"?",问号之后就可以跟参数列表,para1=value1¶2=value2¶3=v ...