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

pbtsingtao 2003-08-01 11:47:14
登陆界面就是要确认登陆者的身份,把登陆者输入的密码与数据库中的密码比较(我是这么思考的,我是按照c/s环境下考虑的,不知道在asp.net中是否是这样),但是我看了一些例子,好像都没有用到我所说的原理去做(可能是我的水平有限没有看出来),好像在客户端用javascript做的,我不知道在服务器端是否也可以进行验证?若能,应该如何做?这样是否会加大服务器的负载?
...全文
1037 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lqdmafeng 2003-08-05
  • 打赏
  • 举报
回复
在www.google.com中搜索“sha1,md5”,你可以看几天都看不完的
seafarer777 2003-08-05
  • 打赏
  • 举报
回复
^_^
yjtc 2003-08-05
  • 打赏
  • 举报
回复
另一种方法:
=======================
按照登陆名称和密码查询用户信息表
select id from login_name = '登陆名称' and login_pw = '登陆密码'
判断,如果此查询生成的
dataset.table(...).row.count = 0
则说明就没有此用户(不存在对应的记录)。否则,登陆成功。
pbtsingtao 2003-08-05
  • 打赏
  • 举报
回复
请问大虾,sha1,md5是什么加密技术,能否给小弟讲一讲,先谢为过
huangfei421 2003-08-02
  • 打赏
  • 举报
回复
转载


你可以做成pagelet.

其他的页面直接调用就行了。
huangfei421 2003-08-02
  • 打赏
  • 举报
回复
使用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存入数据库中。当用户登陆的时候,就可以将用户输入的口令加密结果和数据库中的正确结果比较,通过这种办法来验证口令的正确性了。在此,我就不往下写了,关于数据库的知识还得读者自己去学习。

panyee 2003-08-02
  • 打赏
  • 举报
回复
是可以那样, 不过不同的是,数据库中如果存明码,并不是很安全, 我建议你用户表中, 密码字段你存成密码的加密形式,

用脚本去验证时, 应该是把输入的用户名,密码用xmlhttp发到一个页面,让那个页面进行查询数据库的操作进行验证

验证时,把密码加密一下,再构造sql去查询数据库

加密的格式可以采用md5加密, 只要不容易还原密码就行了
服务器也不会有太大负载的
liguiman 2003-08-02
  • 打赏
  • 举报
回复
这样的登陆很多
多是在服务器上使用的
几乎没有在客户端的验证
这样比较安全,至于负担也不重
jvhmr 2003-08-02
  • 打赏
  • 举报
回复
偶用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>

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧