CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

[原创]小弟,刚刚开始学习asp.net,想对于登陆界面的设计,跟各位讨论

楼主pbtsingtao(追求到底)2003-08-01 23:47:14 在 .NET技术 / ASP.NET 提问

登陆界面就是要确认登陆者的身份,把登陆者输入的密码与数据库中的密码比较(我是这么思考的,我是按照c/s环境下考虑的,不知道在asp.net中是否是这样),但是我看了一些例子,好像都没有用到我所说的原理去做(可能是我的水平有限没有看出来),好像在客户端用javascript做的,我不知道在服务器端是否也可以进行验证?若能,应该如何做?这样是否会加大服务器的负载?  
  问题点数:0、回复次数:9Top

1 楼panyee(快乐王子)回复于 2003-08-02 00:07:43 得分 0

是可以那样,   不过不同的是,数据库中如果存明码,并不是很安全,   我建议你用户表中,   密码字段你存成密码的加密形式,    
   
  用脚本去验证时,   应该是把输入的用户名,密码用xmlhttp发到一个页面,让那个页面进行查询数据库的操作进行验证  
   
  验证时,把密码加密一下,再构造sql去查询数据库    
   
  加密的格式可以采用md5加密,   只要不容易还原密码就行了  
  服务器也不会有太大负载的Top

2 楼huangfei421(秋叶)回复于 2003-08-02 00:23:07 得分 0

使用ASP.NET加密口令    
  当我们在网站上建立数据库时,保护用户的信息安全是非常必要的。多数用户不愿意让别人知道自  
  己的信息,同时网管也不想因为安全问题而丢失网站的信誉。无论对于谁,安全问题都是非常重要的。    
  为了解决这个问题,我给大家提供一个简单实用,但是老套的方法,就是口令加密。在此我们使用ASP.NET技术对口令加密。简单的讲,就是将用户提供的口令加密之后,然后让它和存放于系统中的数据比较,如果相同,则通过验证。    
  在ASP中,并未提供加密的对象,我们只能使用外部的对象来进行加密。现在好了,在ASP.NET中提供了加密的解决方法。在名字空间System.Web.Security中包含了类FormsAuthentication,其中有一个方法HashPasswordForStoringInConfigFile。这个方法可以将用户提供的字符变成乱码,然后存储起来,甚至可以   存储在cookies中。    
  HashPasswordForStoringInConfigFile方法使用起来很简单,它支持"SHA1"和"MD5"加密算法。    
  下面的代码简单的演示了关于其用法:    
  <%@   Page   language="c#"   %>    
  <%@   Import   Namespace="System.Web.Security"   %>    
  <html>    
  <head>    
  <script   language="C#"   runat="server">    
  public   void   encryptString(Object   sender,   EventArgs   e)    
  {    
  SHA1.Text   =   FormsAuthentication.HashPasswordForStoringInConfigFile(txtPassword.Text,"SHA1");    
  MD5.Text   =FormsAuthentication.HashPasswordForStoringInConfigFile(txtPassword.Text,   "MD5")   ;    
  }    
  </script>    
  </head>    
  <body>    
  <form   runat="server"   ID="Form1">    
  <p>    
  <b>Original   Clear   Text   Password:   </b>    
  <br>    
  <asp:Textbox   id="txtPassword"   runat="server"   />    
  <asp:Button   runat="server"   text="Encrypt   String"   onClick="encryptString"   ID="Button1"   />    
  </p>    
  <p>    
  <b>Encrypted   Password   In   SHA1:   </b>    
  <asp:label   id="SHA1"   runat="server"   />    
  </p>    
  <p>    
  <b>Encrypted   Password   In   MD5:   </b>    
  <asp:label   id="MD5"   runat="server"   />    
  </p>    
  </form>    
  </body>    
  </html>    
   
   
  正如你所看到的这样简单易用。我们可以把这段加密程序封装在一个函数里便于重复的使用。代码如下:    
  public   string   EncryptPassword(string   PasswordString,string   PasswordFormat   )    
  {    
  if   (PasswordFormat="SHA1"){    
  EncryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString   ,"SHA1");    
  }    
  elseif   (PasswordFormat="MD5")    
  {   EncryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString   ,"MD5");    
  }    
  else    
  {    
  EncryptPassword="";    
  }    
   
  我们可以在数据库中添加一个字段,使用insert将加密的口令作为一个string存入数据库中。当用户登陆的时候,就可以将用户输入的口令加密结果和数据库中的正确结果比较,通过这种办法来验证口令的正确性了。在此,我就不往下写了,关于数据库的知识还得读者自己去学习。    
   
  Top

3 楼huangfei421(秋叶)回复于 2003-08-02 00:24:44 得分 0

转载  
   
   
  你可以做成pagelet.  
   
  其他的页面直接调用就行了。  
  Top

4 楼jvhmr(午后阳光)回复于 2003-08-02 02:54:17 得分 0

偶用vb.net写的:  
  ----------------------------------------------------------------------------------  
   
  .aspx  
  <form   id="Form1"   runat="server">  
  <FONT   face="宋体">  
  <asp:TextBox   id="TextBox1"   style="Z-INDEX:   101;   LEFT:   233px;   POSITION:   absolute;   TOP:   59px"   runat="server"   Width="85px"   Height="27px"></asp:TextBox>  
  <asp:TextBox   id="TextBox2"   style="Z-INDEX:   102;   LEFT:   236px;   POSITION:   absolute;   TOP:   104px"   runat="server"   Width="88px"   Height="28px"></asp:TextBox>  
  <asp:Label   id="Label1"   style="Z-INDEX:   103;   LEFT:   170px;   POSITION:   absolute;   TOP:   60px"   runat="server"   Width="50px"   Height="28px">用户名</asp:Label>  
  <asp:Label   id="Label2"   style="Z-INDEX:   104;   LEFT:   167px;   POSITION:   absolute;   TOP:   111px"   runat="server"   Width="67px"   Height="25px">用户密码</asp:Label>  
  <asp:Button   id="Button1"   style="Z-INDEX:   105;   LEFT:   241px;   POSITION:   absolute;   TOP:   191px"   runat="server"   Width="86px"   Height="21px"   Text="登陆"></asp:Button>  
  <asp:CheckBox   id="CheckBox1"   style="Z-INDEX:   106;   LEFT:   240px;   POSITION:   absolute;   TOP:   148px"   runat="server"   Width="72px"   Height="21px"   Text="记住我"></asp:CheckBox>  
  <div   id="ErrorMessage"   runat="server"   />  
  <asp:Label   id="Label3"   style="Z-INDEX:   107;   LEFT:   249px;   POSITION:   absolute;   TOP:   233px"   runat="server"   Width="200px"   Height="24px">Label</asp:Label>  
  </FONT>  
  </form>  
   
  .aspx.vb:  
  Imports   System.Web.Security  
  Imports   System.Data  
  Imports   System.Data.SqlClient  
  Public   Class   WebForm11  
          Inherits   System.Web.UI.Page  
          Protected   WithEvents   TextBox1   As   System.Web.UI.WebControls.TextBox  
          Protected   WithEvents   TextBox2   As   System.Web.UI.WebControls.TextBox  
          Protected   WithEvents   Label1   As   System.Web.UI.WebControls.Label  
          Protected   WithEvents   Label2   As   System.Web.UI.WebControls.Label  
          Protected   WithEvents   Button1   As   System.Web.UI.WebControls.Button  
          Protected   WithEvents   ErrorMessage   As   System.Web.UI.HtmlControls.HtmlGenericControl  
          Protected   WithEvents   SqlConnection1   As   System.Data.SqlClient.SqlConnection  
          Protected   WithEvents   Label3   As   System.Web.UI.WebControls.Label  
          Protected   WithEvents   CheckBox1   As   System.Web.UI.WebControls.CheckBox  
   
  #Region   "   Web   窗体设计器生成的代码   "  
   
          '该调用是   Web   窗体设计器所必需的。  
          <System.Diagnostics.DebuggerStepThrough()>   Private   Sub   InitializeComponent()  
                  Me.SqlConnection1   =   New   System.Data.SqlClient.SqlConnection()  
                  '  
                  'SqlConnection1  
                  '  
                  Me.SqlConnection1.ConnectionString   =   "data   source=JIANG;initial   catalog=PoliceNet;persist   security   info=False;user   id=s"   &   _  
                  "a;workstation   id=JIANG;packet   size=4096"  
   
          End   Sub  
   
          Private   Sub   Page_Init(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Init  
                  'CODEGEN:   此方法调用是   Web   窗体设计器所必需的  
                  '不要使用代码编辑器修改它。  
                  InitializeComponent()  
          End   Sub  
   
  #End   Region  
   
          Private   Sub   Page_Load(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Load  
                  '在此处放置初始化页的用户代码  
          End   Sub  
          Function   Verify(ByVal   用户   As   String,   ByVal   密码   As   String)  
                  Dim   rd   As   SqlDataReader  
                  SqlConnection1.Open()  
                  Dim   cmd   As   SqlCommand  
                  cmd   =   New   SqlCommand("SELECT   *   FROM   GLY   WHERE   GLYId='"   &   用户   &   "'   AND   Password="   &   密码,   SqlConnection1)  
                  rd   =   cmd.ExecuteReader  
                  If   rd.Read()   Then  
                          SqlConnection1.Close()  
                          Return   True  
                  Else  
                          SqlConnection1.Close()  
                          Label3.Text   =   "帐号或密码错误,请重新输入!"  
                          Return   False  
                  End   If  
          End   Function  
          Private   Sub   Button1_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   Button1.Click  
                  If   Verify(TextBox1.Text,   TextBox2.Text)   Then  
                          FormsAuthentication.RedirectFromLoginPage(TextBox1.Text,   CheckBox1.Checked)  
                  Else  
                          Label3.Text   =   "帐号或密码错误,请重新输入!"  
                  End   If  
                 
          End   Sub  
  End   Class  
   
  在web.config加入:  
   
  <customErrors   mode="Off"/>  
                  <authentication   mode="Forms">  
                          <forms   name="AuthCookie"    
                                  path="/"    
                                  loginUrl="WebForm11.aspx"    
                                  protection="All"    
                                  timeout="30">  
                                   
                          </forms>  
                  </authentication>  
                  <authorization>  
                          <deny   users="?"   />  
                  </authorization>  
  Top

5 楼liguiman(li)回复于 2003-08-02 06:58:53 得分 0

这样的登陆很多  
  多是在服务器上使用的  
  几乎没有在客户端的验证  
  这样比较安全,至于负担也不重  
  Top

6 楼pbtsingtao(追求到底)回复于 2003-08-05 15:42:10 得分 0

请问大虾,sha1,md5是什么加密技术,能否给小弟讲一讲,先谢为过Top

7 楼yjtc(灵长目)回复于 2003-08-05 16:05:30 得分 0

另一种方法:  
  =======================  
  按照登陆名称和密码查询用户信息表  
  select   id   from   login_name   =   '登陆名称'   and   login_pw   =   '登陆密码'  
  判断,如果此查询生成的    
  dataset.table(...).row.count   =   0    
  则说明就没有此用户(不存在对应的记录)。否则,登陆成功。  
  Top

8 楼seafarer777(手拿胡萝卜就敢装托塔李天王)回复于 2003-08-05 17:09:57 得分 0

^_^Top

9 楼lqdmafeng()回复于 2003-08-05 17:44:13 得分 0

在www.google.com中搜索“sha1,md5”,你可以看几天都看不完的Top

相关问题

  • 界面登陆问题
  • 请教:用ASP做一个简单的登陆界面 需要验证用户名 和密码
  • 我的登陆界面去那里了?
  • 关于登陆界面问题?
  • 高分!!修改win2000登陆界面!
  • 高分求oa系统登陆界面
  • 很急的!登陆界面的问题!
  • 何如用用c#做登陆界面?
  • 关于用户登陆界面问题
  • 用户登陆界面问题

关键词

  • asp.net

得分解答快速导航

  • 帖主:pbtsingtao

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo