web.config authentication

本文介绍了ASP.NET中的新型Authentication和Authorization方案,包括Windows、Forms、Passport和None四种模式的详细解释,强调了Forms模式的灵活性和实用性。通过设置web.config文件,开发者可以控制用户的认证流程,包括从XML文件、数据库或自定义组件获取用户名和密码。
摘要由CSDN通过智能技术生成
ASP.NET 提供了一些新型的Authentication 和 Authorization 方案,对于开发人员来说这将是和以前不同的一种方式。 可喜的是ASP.NET提供的方案多样更加灵活;可惜的是这种方案是基于IIS的。我知道,有些人并不喜欢IIS,认为它容易受攻击。只是一直不喜欢 ASP的方式,杂乱的HTML标记中夹杂着代码,难于维护也难于调试。现在有了新的解决方案,让我们看看。 

  新型 ASP.NET Authentication Provider(下面我会用ASP.NET AP来简称)仅仅发生在调用ASP.NET引擎执行. aspx文件时发生,这也意味着当调用.asp文件时将不会调用ASP.NET引擎。所有的Authentication选项被放在一个XML文件中。每 当你创建一个ASP.NET的Project时,你可以在Project目录下发现一个Config.web文件,在这个XML文件的< security>, <authentication>, <authorization>等标记中你可以进行设置和控 制。默认的是:<authentication mode="None" />,这意味着ASP.NET将不使用任何的 Authentication Provider,那么这种模式下,ASP.NET的底层实现和原来的ASP和IIS 4/5 将完全相同。
  一个典型的Config.web的一般会是下面这样的: 
<!--  AUTHENTICATION  
This section sets the authentication policies of the application. Possible modes are 
" Windows " " Forms "
" Passport "  and  " None "   
  
-->   
  
< authentication mode = " None "   />  

         我们会逐一的考察<authentication>中各个可能的值,不过作为一个开放人员最后我的重点会放在”Forms”上,最后确定一下 我们的平台环境:W2K ADV , VS.NET RCx , IE 6 。(VS.NET Beta2 应该也是可以的,因为写这篇文章时我的系统已 从Beta 2上升级了,所以只能说:我想Beta 2也是可以的。不过我们不会讨论mode=”Cookie”的情况,这个标记只发生在ASP+的情况 下,Beta 2之后的ASP.NET中应当没有了),然后我们还会使用到SDK中带的例子,因为简单所以可以是最好的一个起点。

  然后我们需要简单的设置一下子,先建立一个目录C:/Inetpub/wwwroot/Security,然后Copy原来SDK的 FrameworkSDK/Samples/QuickStart/aspplus/samples/security中的文件到新建的目录中(也可以直 接解压缩附带文件到这个目录中) 

   1. Mode=”None” 

  这种模式是默认的,像上面提到的那样,它的行为和原来的ASP没有任何的不同。 

  但你使用VS.NET生成一个ASP.NET 的Project时,这种模式是默认生成的。 

   2. Mode=”Windows” 

   这种模式下,我们所访问的每一个页面都将需要通过系统的Authentication,访问者可能看到有些迷惑和Windows环境下特有的 Authentication窗口 ,老实说我更喜欢看到 Window XP下的,它更可爱一些。使用这种模式意味着你可以不用额外的写任何代码,很快 的实现,但我想你的商业用户不会喜欢它,而且作为一个开发人员,你无法定制它。 
  现在你实现这种方式将会非常的简单。 


  (1.) 在Config.web 文件中设置<authentication mode="Windows" /> 

  (2.) 去IIS的控制管理界面设置你的Application属性就可以了。 

  (3.) 然后访问你的页面,你会看到这个对话框,很有趣但绝对让非专业人士迷惑。 

  (4.) 我们使用的是WindowAuth的页面。注意Mode=” Windows”,还没有先进到只用设置好Mode=就可以实现Windows Authentication了。 

   3. Mode=”Passport” 

   对于这种模式下,ASP.NET引擎会使用Microsoft Passport的Authentication机制,理论上这种模式将是最OK和省力 的,不过照目前看来,想在ASP.NET下实现Passport还不是一件轻松的事情,VS.NET Beta 2的类库并没有完全实现 Passport 2.1的功能(PassportIdentity). Microsoft目前唯一展示的是在MSDN上的ColdStorage例 子,实现上基本基于Passport 1.4而且像使用DirectX 一样,还需要专门的一个DLL。有资料显示VS.NETRC2之后的类库已经实现 了原来未实现的功能,但就目前看来缺少这方面的资料,所以把这方面的信息留给Microsoft和Passport3.0吧,以后的时间我们会再来考察, 对于Passport我深有信心,而且只要在Microsoft平台,我们都可能无法逃避面对Passport. 

  有关ColdStorage的Passport的信息,可以参见下面的文章: 

  http://msdn.microsoft.com/library/default.asp?url=/librar...hentication.asp 

   4. Mode=”Forms” 

  这种模式下,我想每个开放人员将获得最大的灵活性和控制,而且从现在看来,这是最实用和可行的一种方式。先看一个比较简单的例子: 

  (1.) 在Config.Web 文件中进行下面的设置: 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值