如何创建登录,注册和用户登录后,登录的用户名将在每个页面中显示,使用Label而不使用登录控制并创建用户向导
我在My Table1中有以下字段
ID Username Email id Password
1 dobriyal dd@d.com ssssss
2 manish tt@d.com ttreter
我想在sumit.aspx页面使用Textbox1和textbox2和按钮创建登录...当用户使用textbox1中的emailid和textbox2中的密码时,如果userfind在数据库中根据在textbox1和textbox2中输入的emailid和密码。 ..然后登录的用户名将显示在每个页面的label1中...其中我在页面上有标签1 ///
表示....如果我在Default.aspx上有label1,myname.aspx,defaul2.aspx然后在每个页面中,label1文本将被记录在用户名.....直到他们登录其会话...
如何使用Vb.NET
请记住我不想使用默认登录& createuserwizard,ASp.NET的登录状态和登录名控制......
答案 0 :(得分:1)
你的问题答案非常广泛。所以代替代码,我给你的算法。
<强> 1。创建一个方法,检查数据层文件中提供的用户名和密码。 例如。 bool IsAuthenticatedUser()。在此方法内部运行Command.ExecuteScalar。这是查询“
Declare @Count =(Select Count(*) From Login
Where UserName = @UserNAme and Password = @Password)
Select @Count;
- 假设您正在使用Sql Server 2008
<强> 2。现在,在IsAuthenticated方法中检查返回的值是否为1,然后返回true,否则返回false。像这样的东西
int count = (int)command.ExecuteScalar();
If (count ==1)
{
return true;
}
return false;
第3。在UI上检查方法返回的值。如果真的将用户重定向到其页面。并设置会话。用于在页面上显示姓名电子邮件ID, 在IsAuthenticated方法成功之后,创建另一个方法,从数据库中选择所需的实体并将其填入数据表中。 像这样的东西
If(IsAuthenticatedUser(username, password))
{
Datatable dt = GetUserDetails(username,password);
If(dt!=null)
{
if(dt.rows.count >0)
{
// here there is only one row so you can use index [0] also
foreach(DataRow dr in dt.rows)
{
Session["UserName"] = dr["UserName"].tostring();
Session["Email"] = dr["Email"].tostring();
}
}
}
现在在所需的页面上检查两个会话是否都为空,然后将值设置为所需的标签。
If (Session["UserName"]!=null && Session["Email"]!=null)
{
lblUserName.Text = "Welcome " + Session["UserName"].ToString();
lblEmail.Text = Session["Email"].tostring();
}
**这里的userName和password参数将是从文本框传递的值。
string username = txtUserName.text.trim();
string password = txtPassword.text.trim();
您也可以在接受用户输入之前进行验证,因为这可能会导致sql注入并暴露整个数据库。但出于家庭目的,你可以这样做。**
请参阅更新:
在每个页面上显示名称创建母版页并在其上添加两个标签。要添加母版页,请从上下文菜单添加新项 - &gt;母版。现在在源视图中根据需要添加表。还有ContentPlaceholder,不要在该标签内添加。这是显示其他子页面的空间。在主页面加载事件中使用label =会话代码来设置名称。还有一个链接按钮,在其点击事件中使用
Session.Abandon();
的Response.Redirect( “〜/注销的Login.aspx = 1?”);
- &GT; 我添加了一个新东西?Logout称为查询字符串,用于将值从一个页面传递到另一个页面。在这里,我使用Login = 1,这意味着我可以在登录页面上知道,因为我自己退出了。