ASP教程之ASP+平安身份考证的完成
源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码平安.NET平台及其ASP+所供应的壮大开辟功效是每一个程序员所不克不及无视的,对某种言语的偏好不应影响选择最具效力的开辟工具。而今朝,ASP+的确供应了很多JSP所没法对比的功效。
利用ASP+,你会真正感应利用言语的自在性,编程时在网页上可看到编译ASP+页中C#等言语时的全体编译信息,并且利用ASP+供应的数十种功效壮大的服务器端控件,几近可
以完成之前客户端RAD开辟工具所能完成的全体功效,ASP+能够间接便利地利用.NET中的XML手艺,利用几个复杂的函数就能够用XML替换一些数据库或和其他程序互换信息。
关于将来,将有愈来愈多的言语撑持ASP+的开辟,而富士通美国子公司已推出了Cobolfor.NET,让Cobol也能够开辟ASP+使用程序了。唯一遗憾的是,ASP+今朝还不克不及跑在除Windows系列的其他平台上,但这恰是.NET正在做的事。
基于上述长处,愈来愈多的Web使用将会利用ASP+体例开辟,在详细完成如电子商务等使用时,必需器重各类平安性成绩,此成绩触及操纵体系、收集办理及程序平安等浩瀚方面,限于篇幅,本文将先容怎样用ASP+的设置和程序完成平安身份考证。
ASP+的相干设置
ASP+的设置办法较出格,它利用config.web这个XML范例的文件来存储设置信息,你可用notepad或XML编纂器便利地修正其内容,划定的设置体例是子目次承继大概掩盖从父目次得来的设置设定,就是说在root目次下放了个config.web文件,那末任何下一级目次将主动承继这个文件中的设置,假设某个子目次必要别的的设置时,我们可再另建一个config.web放在该子目次下。这类设置办理体例对安装你的使用程序、设置的修正及平安办理都极其有益。
ASP+供应了三种次要的身份考证体例即:Windows、Cookie和Passport,Windows是教唆用Windows本身的平安办理体例,你可经由过程设置Windows的用户及IIS等权限来保证平安,关于一些年夜使用,利用此办法将十分庞大和啰嗦。Passport体例较为便利和平安,用户只用一个用户名和暗码能够会见任何成员站,而且在刊出分开时,一切Passport相干的信息城市扫除,你能够在公开场合宁神地利用它,信任Passport对照合适Internet的使用。在企业级使用中,利用Cookie体例和SSL、IP限定等一些网管手艺一样能够完成必定的平安性。
上面先容一下Cookie的设置:
你需建一个以下内容的config.web,并将它放在C:inetpubwwwroot(IIS缺省目次)下,关于体系安装时已创建的config.web,一样平常在WINNTMicrosoft.NETFrameworkv...目次下。
<configuration>
<security>
<authenticationmode="Cookie">
<cookiedecryptionkey="autogenerate"loginurl="/login.aspx"cookie=".ASPXAUTH"/>
</authentication>
<authorization>
<denyusers="?"/>
</authorization>
</security>
</configuration>
该设置文件声明用Cookie体例考证,在你会见该目次及其子目次下的aspx文件时,假如你没有认证的Cookie,它就会重定向到login.aspx。假如你必要一个不必要身份认证的目次(可放用户请求的程序)则可建一个以下的config.web并放在该目次下:
<configuration>
<security>
<authorization>
<allowusers="*"/>
</authorization>
</security>
</configuration>
程序计划
你需在root目次下创建Default.aspx和login.aspx这两个ASP+程序。
login.aspx程序内容以下:
<%@ImportNamespace="System.Web.Security"%>
<%@ImportNamespace="System.Data"%>
<%@ImportNamespace="System.Data.ADO"%>
<html>
<head>
<title>Login</title>
<scriptlanguage="C#"runat=serverDebug="true">
voidLogin_Click(Objectsender,EventArgse){
if(Page.IsValid)
{ADODataReaderdr;
//毗连数据库,用户名和暗码放在ODBC毗连的数据库QCDB中的表Users中
ADOConnectioncn=newADOConnection("DSN=QCDB");
cn.Open();
ADOCommandcmdQuestion=newADOCommand("SELECTPasswordFROMUsersswheresname="+YourName.Text+"",cn);
//选择响应用户信息
cmdQuestion.Execute(outdr);
//建一个datareader失掉SQL了局
if(dr.Read())//失掉对应的第一个行数据
if(dr["Password"].ToString()==Password.Text)
CookieAuthentication.RedirectFromLoginPage(YourName.Text,AbidingCookie.Checked);
else//下面语句天生一个Cookie,如用户选择AbidingCookie,则永世保留Cookie
Msg.Text="暗码毛病";
else
Msg.Text="用户名不存在";
}
}
</script>
</head><center><body>
<ASP:Labelid="Msg"ForeColor="red"Font-Name="Verdana";
Font-Size="18"runat=server/>
<formrunat=server>
<table><tr><td><ASP:labeltext="用户名:"runat=server/></td>
<td><ASP:textboxid="YourName"runat=server/></td>
</tr><tr><td><ASP:labeltext="暗码:"runat=server/></td>
<td><ASP:textboxid="Password"TextMode="Password"runat=server/></td>
<td><ASP:buttonid="btnLogin"Text="断定"runat=Server/></td>
<td></td></tr><tr><td>但愿下次不必输出暗码</td>
<td><ASP:CheckBoxid=AbidingCookierunat="server"/></td>
<td></td></tr></td><td></td></tr></table>
</form></td><tdwidth="283"height="1"bgcolor="#F0F0F0"></td>
</tr></table></center></div><p></p></body>
</html>
Default.aspx程序内容以下:
<%@PageLANGUAGE="c#"%>
<html><head><title>接待离开.NET的天下</title>
<scriptrunat=server>
privatevoidPage_Load(ObjectSrc,EventArgsE)
{Welcome.InnerHtml="庆祝你经由过程身份考证"+Context.User.Identity.Name;
}privatevoidSignout_Click(Objectsender,EventArgsE)
{CookieAuthentication.SignOut();
//按下SignOut按键扫除原Cookie
Response.Redirect("login.aspx");
//让用户重输出新用户名、暗码
}
</script><body><center>
<h3><fontface="Verdana">.NET身份考证体系提醒你</font></h3>
<spanid="Welcome"runat=server/><formrunat=server>
<inputtype="submit"OnServerClick="Signout_Click"Value="作废该登录身份"runat="server"/><p>
</form><p><ahref="/adduser/">进进办理室</a></p></center></body></html>
详细实行时,当一个未经认证的用户扫瞄你的网站的.aspx文件时(注重,Cookie认证只对.aspx文件起感化),体系发明该用户没Cookie,因而将它重定向到login.aspx,当用户输出准确的用户名和暗码后,体系为该用户天生一个Cookie并立即主动重定向到一入手下手该用户要扫瞄的.aspx文件并实行它,缺省的则定向到Default.aspx,下面供应的Default.aspx则提醒你已经由过程身份认证。
总结
因为我们利用了Session跟踪使用程序会见或会话时代特定的Web扫瞄器信息,带有响应的cookie的HTTP哀求被以为是来自统一Web扫瞄器,以是要避免被人利用Sniffer等办法不法截获Cookie信息,你必要思索利用SSL或其他平安的通信链路加密办法。
关于上述程序,你能够便利地在Table中到场用户IP地点的信息,来考证Intranet用户。因为Cookie就像一个身份证,为避免有人不法利用你的Cookie,应当让Cookie跟着扫瞄器的封闭一同扫除。
总之,利用Cookie的身份考证办法再分离各类加密手腕和操纵体系完美的平安设置就能够为年夜多半必要平安认证的使用供应充足的撑持。
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。 我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标. 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。 Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名") 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。 下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。 ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。 从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
页:
[1]