初学Asp.Net 问个用户登录验证问题.

jhtchina 2004-12-01 03:14:15
如下代码:
//WebForm1.aspx页面,登录页面
if ((textbox1.text=="username")&&(textbox2.text==password))
{
Response.Redirect("MainWebFrom.aspx");
}
else
{
Response.Write("密码错误");
}
以上代码是验证用户名,和密码 如果用户名或者密码错误不能进入
但是如果,我在URL 里面直接输入 MainWebFrom.aspx 还是能直接进入.
密码验证部分不起作用.怎么办?常用的办法是什么??
给个源码参考一下.谢谢


...全文
325 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoqiang_889 2010-05-31
  • 打赏
  • 举报
回复
因该用

sqlcommand cmd=new sqlcommand("select * from 表名 where 字段=“@复值”)

以后是加密的代码

因该用 " +' 复值,容易,SQL柱入式攻击
cgmx 2004-12-01
  • 打赏
  • 举报
回复
1. 在Web.Config中设置你的验证类型.此处选择Form
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<authentication mode="Forms">
<forms name="appName" path="/" loginUrl="Login.aspx" protection="All" timeout="30"></forms>
</authentication>
<authorization>
<deny users="?" /> <!-- 禁止匿名访问 -->
</authorization>
</system.web>
</configuration>

2.在登录页面验证后通知程序用户已经过验证,需要如下代码,此代码并跳转到用户请求的URL
FormsAuthentication.RedirectFromLoginPage(textbox1.text, false);
woody420 2004-12-01
  • 打赏
  • 举报
回复
呵.楼上几位说得很清楚了...
cancerser 2004-12-01
  • 打赏
  • 举报
回复
可以用userid来引导其他叶的超做,详见session或application,其他页面的访问是不可避免的,操作是可以避免的。
我会的唯一办法
login页 session[“xx”]=username
其他页 if ( session[“xx”]=“”)
{ Response.Redirect("login.aspx");}
else
{
.
}
aspnetxml 2004-12-01
  • 打赏
  • 举报
回复
cookie或session验证呀
cancerser 2004-12-01
  • 打赏
  • 举报
回复
if ((textbox1.text=="username")&&(textbox2.text==password))
你发现没?为什么username有引号,password没引号?
hunter_32 2004-12-01
  • 打赏
  • 举报
回复
private void Page_Load(object sender, System.EventArgs e)
{
if(Session["LoginId"].ToString()=="" )
{
Page.Response.Redirect("login.aspx");
}
}
mayongzhi 2004-12-01
  • 打赏
  • 举报
回复
呵呵,老兄,你url直接输入MainWebFrom.aspx当然可以跳过webform1.aspx而进入,这是因为MainWebFrom.aspx中没有进行用户是否已经登过的验证语句,通常是这个是一个session值,写个简单的例程你看看:
在登录页中:
if ((textbox1.text=="username")&&(textbox2.text==password))
{
Session("username") = textbox1.text
Response.Redirect("MainWebFrom.aspx");
else
{
Response.Write("密码错误");
}
在其它页页的pageload中加入
If Session("username") Is Nothing
{
Response.Redirect("登录页");
}这样就只有经过了登录才能打开其它页
jhtchina 2004-12-01
  • 打赏
  • 举报
回复
回复人: woody420(轨の迹) ( ) 信誉:100
你说的对,但是我需要源码看看.特别是验证源码.
woody420 2004-12-01
  • 打赏
  • 举报
回复
你在你的MainWebFrom.aspx 页面验证是否输入用户名和密码.
在登陆页面,输入用户名,密码成功后将其保存在Session里,在MainWebFrom.aspx 中验证.
sean168 2004-12-01
  • 打赏
  • 举报
回复
Request.UrlReferrer

FormsAuthentication.RedirectFromLoginPage 方法
jhtchina 2004-12-01
  • 打赏
  • 举报
回复
我的问题是为什么直接输入URL也能直接进入(要正确输入密码才能进入)页面??怎么办.至于用什么验证数据库,或者其他的我不关心
sean168 2004-12-01
  • 打赏
  • 举报
回复
在config文件里写
<location path="无需权限的页.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>


<authentication mode="Forms" >
<forms loginUrl="login.aspx"></forms>//如果没有登陆强行转到登录页
</authentication>
<authorization>
<deny users="?"/>
</authorization>
missjuan 2004-12-01
  • 打赏
  • 举报
回复
常用的是采用FORM验证,如果不通过验证直接输入地址的话是不会让进入的.
在密码验证的时候最好是采用MD5加密.
bitm 2004-12-01
  • 打赏
  • 举报
回复
先用Sql语句查询
select id from tabledata Where username='"textbox1.Text"' and password='"textbox2.text"'

然后用dr.reader()查找。如果找到就Response.Redirect("MainWebFrom.aspx")否则Response.Write("密码错误");

Overriding 2004-12-01
  • 打赏
  • 举报
回复
'登录代码。
Private Sub btnOk_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOk.Click
Dim checkvalid As Boolean = False
Dim precmd As New SqlCommand("select * from school where schoolid=@schoolid", cnn)
precmd.Parameters.Add("@schoolid", txtID.Text.Trim)

Dim cmd As SqlCommand
cmd = New SqlCommand("select employeepassword from employee where employeename=@username and schoolid=@schoolid", cnn)
cmd.Parameters.Add("@username", txtName.Text.Trim)
cmd.Parameters.Add("@schoolid", txtID.Text.Trim)
Dim intReturn As Integer
If Not IsValid Then
Exit Sub
End If
Dim reader As SqlDataReader
Try
cnn.Open()
intReturn = precmd.ExecuteScalar
If intReturn = 0 Then
Response.Write("<script defer>alert('服务端口号错误!')</script>")
Exit Sub
End If
reader = cmd.ExecuteReader
If Not reader.HasRows Then
Response.Write("<script defer>alert('用户名不存在!')</script>")
cnn.Close()
Exit Sub
Else
reader.Read()
End If

Dim pwd As String = reader.Item("employeepassword")

Session("schoolid") = txtID.Text.Trim
If pwd = txtPwd.Text.Trim Then
FormsAuthentication.RedirectFromLoginPage(txtName.Text, False)
FormsAuthentication.SetAuthCookie(txtName.Text, False)
checkvalid = True
Else
Response.Write("<script defer>alert('密码错误!')</script>")

End If
cnn.Close()
Catch ex As Exception
Response.Write(ex.Message)
checkvalid = False
Finally
If Not cnn.State = ConnectionState.Closed Then
cnn.Close()
End If
End Try
If checkvalid Then
Response.Redirect("main.htm")
End If


End Sub
很久以前写的,你看看!

62,046

社区成员

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

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

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

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