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了。


<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ASP.NET Core是一种开源的跨平台的Web应用程序框架,其特点是高性能、可扩展性和灵活性。ASP.NET Core项目的发布和运行环境部署可以分为以下几个步骤: 1. 项目发布: 首先,我们需要通过运行相应的命令或使用Visual Studio等工具来发布ASP.NET Core项目。发布时我们可以选择多种部署模式,例如自包含部署和依赖部署。自包含部署会将项目的所有依赖项都打包到发布文件,这样可以使项目在目标服务器上独立运行,而不需要依赖全局安装的.NET Core SDK等组件。依赖部署则可以减小发布文件夹的大小,但在目标服务器上需要预先安装.NET Core运行时,以便项目能够运行。 2. 运行环境配置: 在进行项目部署之前,我们需要在目标服务器上配置ASP.NET Core项目所需的运行环境。首先,我们需要安装.NET Core SDK或.NET Core运行时,这样才能正确运行项目。其次,我们还需要配置Web服务器(如IIS、Nginx等)来处理HTTP请求,并将请求转发到ASP.NET Core应用程序。对于不同的Web服务器,配置方法会有所不同,一般会涉及到设置绑定和反向代理等。 3. 项目部署: 一旦运行环境配置完成,我们就可以将ASP.NET Core项目部署到目标服务器上。这可以通过将发布文件文件复制到目标服务器上的指定位置来完成。在部署过程,我们需要确保将项目所需的配置文件静态文件等一并复制到目标服务器上。 4. 运行项目: 部署完成后,我们可以通过运行相应的命令或通过Web服务器来启动ASP.NET Core项目。对于使用Kestrel作为Web服务器的情况,我们可以使用dotnet命令来启动项目。对于使用IIS作为Web服务器的情况,我们可以通过IIS Manager来配置应用程序池,将HTTP请求转发到ASP.NET Core应用程序。无论哪种方式,启动项目后,我们就可以通过访问相应的URL来使用ASP.NET Core应用程序了。 总结来说,ASP.NET Core项目的发布和运行环境部署需要经过项目发布、运行环境配置、项目部署和运行项目等阶段。在整个过程,我们需要注意配置正确的运行环境和Web服务器,并确保将项目所需的文件正确复制到目标服务器上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值