未登录用户的Asp.net身份验证错误
本文关键字:net 身份验证 错误 Asp 登录 用户 | 更新日期: 2023-09-27 18:08:19
我有我的登录表单,我试图参数登录用户的查询。但它似乎给一个错误,登录失败的用户。我的代码在这里。请告诉我我做错了什么。
public void LoginUser()
{
string UserNameFromHTML = Page.Request.Form["UserNameIput"];
string UserPasswordFromHTML = Page.Request.Form["UserPasswordInput"];
string QueryString = "SELECT User_Id, User_Name, User_Password FROM um_Personnel WHERE User_Name = @UserName and User_Password = @UserPassword";
SqlCommand Command = new SqlCommand();
Command.CommandText = QueryString;
Command.Connection = ConnectionString;
Command.Parameters.AddWithValue("@UserName", UserNameFromHTML);
Command.Parameters.AddWithValue("@UserPassword", UserPasswordFromHTML);
using (SqlDataAdapter Data_Adapter = new SqlDataAdapter(Command))
{
DataSet Data_Set = new DataSet();
Data_Adapter.Fill(Data_Set);
if (Data_Set.Tables[0].Rows.Count > 0)
{
Response.Redirect("CMS/Dashboard.aspx");
}
}
}
和我调用这个函数在我的按钮onClick
事件为
<button type="submit" class="submit" onclick='<% LoginUser(); %>'>
完整的HTML代码在这里
<fieldset>
<legend class="legend">User Login</legend>
<div class="input">
<input type="text" placeholder="Enter User Name" id="UserNameIput" required />
<span><i class="fa fa-envelope-o"></i></span>
</div>
<div class="input">
<input type="password" placeholder="Enter Password" id="UserPasswordInput" required />
<span><i class="fa fa-lock"></i></span>
</div>
<button type="submit" class="submit" onclick='<% LoginUser(); %>'><i class="fa fa-long-arrow-right"></i></button>
</fieldset>
这部分代码
<input type="text" placeholder="Enter User Name" id="UserNameIput" required />
不包含返回参数的name
属性。为了使其工作,添加name
(id没有从我看到的使用),并使其为:
<input type="text" placeholder="Enter User Name" name="UserNameIput" required />
则可以从后面的代码中获得输入:
Page.Request.Form["UserNameIput"];
对所有需要从代码中获取值的输入执行相同的操作,或者使用服务器控件。我问你是否一步一步地调试你的代码,但显然你没有这样做,也没有检查你是否有任何关于这些值的东西。所以你可能会有更多的错误。
一步一步调试你的代码,检查参数,检查sql是否正确运行,并改进你的代码
检查用户是否有正确的登录名和密码后,您需要实际Login
该用户。
public void LoginUser()
{
string UserNameFromHTML = Page.Request.Form["UserNameIput"];
string UserPasswordFromHTML = Page.Request.Form["UserPasswordInput"];
string QueryString = "SELECT User_Id, User_Name, User_Password FROM um_Personnel WHERE User_Name = @UserName and User_Password = @UserPassword";
SqlCommand Command = new SqlCommand();
Command.CommandText = QueryString;
Command.Connection = ConnectionString;
Command.Parameters.AddWithValue("@UserName", UserNameFromHTML);
Command.Parameters.AddWithValue("@UserPassword", UserPasswordFromHTML);
using (SqlDataAdapter Data_Adapter = new SqlDataAdapter(Command))
{
DataSet Data_Set = new DataSet();
Data_Adapter.Fill(Data_Set);
if (Data_Set.Tables[0].Rows.Count > 0)
{
FormsAuthentication.RedirectFromLoginPage(UserNameFromHTML, true); //will return the user to the page who needs a user who is logged in
}
else
{
Responce.Redirect("~/Home/Index/");
}
}
}
在Web.config
中添加:
<authentication mode="Forms">
<forms name=".ASPXFORMSDEMO" loginUrl="logon.aspx" protection="All" path="/" timeout="30" />
</authentication>