我正在尝试编写一个基于ASP.Net
. 当我使用用户名和密码创建登录页面,并连接到SQL-server
.
但是当我输入正确的用户名和密码时。它需要点击登录两次才能登录。登录后,当我返回登录页面时。无论我试图在用户名和密码文本框中输入什么。系统会一直让我登录。听说session
可以帮忙,但不知道怎么用。
有没有人可以帮助我?或者请给我一些可用的代码示例?
谢谢
吉米
我正在尝试编写一个基于ASP.Net
. 当我使用用户名和密码创建登录页面,并连接到SQL-server
.
但是当我输入正确的用户名和密码时。它需要点击登录两次才能登录。登录后,当我返回登录页面时。无论我试图在用户名和密码文本框中输入什么。系统会一直让我登录。听说session
可以帮忙,但不知道怎么用。
有没有人可以帮助我?或者请给我一些可用的代码示例?
谢谢
吉米
我支持@GojiraDeMonstah 的建议,并且还建议您尽可能使用Microsoft 的开箱即用(OOTB)功能来处理网站安全(即身份验证、授权、用户管理、密码重置等)。当一切都为您服务时,没有理由去重新发明轮子。您甚至可以扩展现有功能来创建您自己的自定义身份验证提供程序,但您确实希望避免尝试从头开始编写一个,特别是如果您不熟悉这些东西。
Microsoft 提供了无数的工具和教程,让您可以轻松设置所有这些东西。不要尝试创建自己的数据库,除非你真的真的必须这样做。只需使用他们为您提供的那个,并以此为起点。
这是另一个很棒的资源,它提供了一个更直观的教程,向您展示它是多么容易。
祝你好运!
像这样写代码
FirstPage.aspx(在您的第一页登录按钮单击)
protected void Login_Click(object sender, EventArgs e)
{
Session["UserName"] = txtUserName.Text;//Store username in session
}
SecondPage.aspx(在下一页登录后)
protected void Page_Load(object sender, EventArgs e)
{
LabelUserName.Text = Session["UserName"].ToString();//Show username on a label
}
希望能帮助到你 ....
提供用户名和密码(凭据)然后使用提供的名称和密码来验证用户的过程称为身份验证。如果您使用 google asp.net 身份验证,您将获得数不胜数的结果。这是一个好的开始 --> http://support.microsoft.com/kb/301240
我发现最简单的方法是在此处下载此示例中提供的示例页面。
使用Global.asac文件,这样您就不必向应用程序中的每个页面添加登录代码。
在文件“Global.asax”中,在函数“Session_Start()”中定义您的会话
protected void Session_Start(Object sender, EventArgs e)
{
//The first Session "Logged" which is an indicator to the
//status of the user
Session["Logged"]="No";
//The second Session "User" stores the name of the current user
Session["User"]="";
//The third Session "URL" stores the URL of the
//requested WebForm before Logging In
Session["URL"]="Default.aspx";
}
在每个页面中,您只需要经过身份验证的访问来检查用户是否被记录,如下所示:
private void Page_Load(object sender, System.EventArgs e)
{
if(Session["Logged"].Equals("No"))
{
....
}
else
{
....
}
}
在您的Login.aspx页面中,使用如下函数检查数据库中的用户名和密码:
if(CheckUser(UserNametxt.Text.Trim()) && CheckPassword(Passwordtxt.Text.Trim())
{
....
}
else
{
....
}
在您的代码隐藏中,通过连接到您的数据库并从登录页面传递变量来定义函数 CheckUser() 和 CheckPassword()。