ASP.NET登录代码实现
大家好,我是个初学者。请教高手一个问题。急盼!!在一个登录网页中,有用户名和密码两个文本框,还有一个下拉列表控件。
我的sql server 2005数据库中有个表,叫manager,里面的字段是manager_name,manager_pwd和department_id.
我想在login.aspx.cs中加入登录按钮的代码,就是说用户输入名字,密码还有他所在的部门(下拉列表里),如果正确的话,就进入default.aspx网页中。但自己编写的登录代码却总是不能实现。请诸位能给个详细的登录代码吗》》》???万分感激!!!!
开发工具:vs2005+sql 2005 ,开发语言:c# --------------------编程问答-------------------- 飘过,你先个你的代码好了 --------------------编程问答-------------------- string str = "select manage_name,manage_pwd from manage where manage_name=@name and manage_pwd=@pwd";
添加参数
if(dr.read())
{
if(dropdownlist1.selectedItems.text == "所在部门")
跳转页面
}
大概是这样的! --------------------编程问答-------------------- http://hi.baidu.com/kmiaoer/blog/item/5f558954370bfb1e3b2935a5.html
我写的个例子 你看一下 ~~ --------------------编程问答-------------------- 同意二楼的意见, --------------------编程问答-------------------- 我写了个自己用的 不过是用的asp.net vb语言的 看看有没有用
Static n As Integer--------------------编程问答-------------------- 上面的”代码同红色字体“就是和case"学生"里的代码是一样的 --------------------编程问答-------------------- 密码放下拉里面?
Session("dropdownlist1value") = Trim(Request.Form("dropdownlist1"))
Session("Name") = Trim(Replace(Request.Form("username"), "'", "''"))
Session("PW") = Trim(Request.Form("userpwd"))
Dim conn As SqlConnection = New SqlConnection()
conn.ConnectionString = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
conn.Open()
Dim sqlstr As String = "select * from 管理员表 where 管理员名 = '" + Session("Name") + "' and 密码 = '" + Session("PW") + "'and 权限级别 = '" + Session("dropdownlist1value") + "' "
sqlcmd = New SqlCommand(sqlstr, conn)
dr = sqlcmd.ExecuteReader()
Select Case DropDownList1.SelectedValue
Case "学生"
If dr.Read = False Then
If n > 3 Then
label1.Text = sss & "你无权使用本网站的部分功能!"
Else
n += 1
label1.Visible = True
label1.Text = sss & "输入的用户名或密码有误!"
'Response.Redirect("login.aspx")
Exit Sub
End If
ElseIf String.Compare(Session("Code").ToString(), text1.Text, True) <> 0 Then
label1.Visible = True
label1.Text = sss & "验证码有误,请输入正确的验证码!"
Exit Sub
Else
Response.Redirect("main.aspx")
End If
case "系负责人"
代码同红色字体
case“管理员"
代码同红色字体
end select
第一次见到 --------------------编程问答--------------------
if (this.TextBoxLoginName.Text.Trim().Equals(""))
{
ClientScript.RegisterStartupScript(GetType(), "loginNameNull", "<script>alert('用户名不能为空!');</script>");
}
else if (this.TextBoxPwd.Text.Trim().Equals(""))
{
ClientScript.RegisterStartupScript(GetType(), "pwdNull", "<script>alert('密码不能为空!');</script>");
}
else if (("").Equals(Convert.ToString(this.DropDownListDepartmentId.SelectedItem)))
{
ClientScript.RegisterStartupScript(GetType(), "DepartmentNull", "<script>alert('部门不能为空!');</script>");
}
else
{
Manager manager = new Manager();
manager.manager_name = this.TextBoxLoginName.Text.Trim();
manager.manager_pwd = this.TextBoxPwd.Text.Trim();
manager.department_id = Convert.ToInt32(this.DropDownListDepartmentId.SelectedValue.ToString());
string sql = string.Format("select * from Manager where manager_name='{0}' and manager_pwd='{1}' and department_id='{2}'", manager.manager_name, manager.manager_pwd, manager.department_id);
SqlConnection conn = new SqlConnection(GetConnectionString());
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
Response.Redirect("/FinanceManagerSystemUI/main/Index.aspx");
}
else
{
ScriptManager.RegisterStartupScript(this, GetType(), "nameOrPwdError", "alert('用户名或密码错误!');", true);
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
conn.Dispose();
}
}
瞎写的,没验证过 --------------------编程问答-------------------- LS几位的代码......真庞大....
最好能附上 FORMS Authentication 的步骤把... --------------------编程问答--------------------
--------------------编程问答-------------------- 这个问题不复杂,还是你自己先动手写,有问题大家帮你改吧 --------------------编程问答-------------------- 10楼的代码是对的 --------------------编程问答-------------------- 这个真的很好! --------------------编程问答-------------------- 好什么好,没顾及到登录的安全性 --------------------编程问答-------------------- System.Web.Security.FormsAuthentication.RedirectFromLoginPage("ss", false); --------------------编程问答--------------------
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string stt = "select manager_name,manager_pwd,department_id from manager where manager_name='" + TextBox1.Text + "' and manager_pwd='" + TextBox2.Text + "' and department_id='"+DropDownList1.SelectedValue+"'";
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["aaaaaaConnectionString"].ToString());
conn.Open();
SqlCommand cmd = new SqlCommand(stt,conn);
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.Read())
{
Response.Redirect("default.aspx");
}
else
{
Response.Redirect("login.aspx");
}
sdr.Close();
conn.Close();
}
网上下个案例好好的研究研究 --------------------编程问答--------------------
这个可以 --------------------编程问答-------------------- UsersEntity user = UsersEntity.getser(userName.Text);
if (user != null && user.Password == passWord.Text)
{
Session["Username"] = userName.Text;
if (String.Compare(Request.Cookies["CheckCode"].Value.ToLower(), txtCheckCode.Text.ToLower(), true) != 0)
{
Response.Write("<script>alert('验证码不正确,请重新输入')</script>");
return;
}
Response.Redirect("top1.aspx");
}
else
{
Response.Write("<script>alert('密码输入错误')</script>");
} --------------------编程问答-------------------- string str = "select manage_name,manage_pwd from manage where manage_name=@name and manage_pwd=@pwd ";
添加参数
if(dr.read())
{
if(dropdownlist1.selectedItems.text == "所在部门 ")
跳转页面
}
大概是这样的! --------------------编程问答--------------------
using System;--------------------编程问答-------------------- 可以这样做,先查询用户名是否存在(根据部门即下拉列表框),如果存在,再判断密码是否正确。如果正确就跳转到对应的页面 --------------------编程问答-------------------- 可以把数据库发过来。我帮你做,QQ:383210026 --------------------编程问答-------------------- 直接写SQL语句判断不就可以了。。存在就跳页! --------------------编程问答--------------------
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class adminManage_login : System.Web.UI.Page
{
AdminDAL adminDal = new AdminDAL();
DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
tbdDate.Value = DateTime.Now.ToShortDateString();
}
}
protected void IbtnEnter_ServerClick(object sender, ImageClickEventArgs e)
{
if (Page.IsValid)
{
string username = TxtUserName.Value.Trim();
string password = TxtPassword.Value.Trim();
string dDate = tbdDate.Value.Trim();
if (username == "" || password == "" || dDate == "")
{
ClientScript.RegisterStartupScript(GetType(), "startup", "alert('请输入用户名、密码和操作日期!');", true);
return;
}
/*
string verifyCode = TxtValidateCode.Value.Trim();
if (Request.Cookies["myCheckCode"] == null)
{
Response.Write("<script language='javascript'> alert('Cookies被禁用!必须设置浏览器允许使用Cookies才能登录本系统');</script>");
return;
}
if (String.Compare(Request.Cookies["myCheckCode"].Value, verifyCode, true) != 0)
{
//Response.Write("<script language='javascript'> alert('验证码错误,请输入正确的验证码');</script>");
ClientScript.RegisterStartupScript(GetType(), "startup", "alert('验证码错误,请输入正确的验证码!');", true);
return;
}
*/
dt = adminDal.AdminLogin(username, password);
if (dt.Rows.Count > 0)
{
Session["admin"] = dt.Rows[0]["username"].ToString().Trim();
//Session["adminStatus"] = dt.Rows[0]["adminStatus"].ToString().Trim();
//Session["realname"] = dt.Rows[0]["realname"].ToString().Trim();
Session["emp_id"] = dt.Rows[0]["emp_id"].ToString().Trim();
adminDal.LoginUpdateTime(Session["admin"].ToString().Trim());
//FormsAuthentication.SetAuthCookie(Constant.Admin, false);
if (dt.Rows[0]["adminStatus"].ToString().Trim() == "0")//系统管理员
{
Response.Redirect("admin/AdminUserList.aspx");
}
else//普通用户
{
Response.Redirect("main.htm");
}
}
else
{
ClientScript.RegisterStartupScript(GetType(), "startup", "alert('用户名或密码错误!');", true);
}
}
}
}
虽然没测试过 但是思路给了楼主
Up+1 --------------------编程问答-------------------- 围观"xuanxuanlee"头像
这女人啥时候胸大了? --------------------编程问答--------------------
--------------------编程问答-------------------- 这个网上有很多的! --------------------编程问答-------------------- 密码加密解密我都有,你要不要? --------------------编程问答-------------------- 我想要密码加密解密的代码及处理方法学习学习,各位大侠谁有可否共享一下,我的QQ:648190146
string name = TxtName.Text.Trim();
string pwd = TxtPassword.Text.Trim();
Models.UserInfo userInfo = BLL.Userinfo.GetAllUserInfoByuserId(name);
if (userInfo.UserId != name)
{
Common.Message.Show("您输入的用户名不存在,请注册!", this);
return;
}
//要给密码加密
if (userInfo.PassWord != pwd)
{
Common.Message.Show("密码不正确!", this);
return;
}
//userInfo.UserId = name;
//获取角色
FormsAuthentication.SetAuthCookie(name, true);
//读取
HttpCookie cookie = FormsAuthentication.GetAuthCookie(name, true);
//解密cookie.
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);
//重写票据信息,添加角色信息
FormsAuthenticationTicket newTicket = new FormsAuthenticationTicket(ticket.Version, ticket.Name, ticket.IssueDate, ticket.Expiration, ticket.IsPersistent, userInfo.RoleName);
//加密票据,并赋值给cookie
cookie.Value = FormsAuthentication.Encrypt(newTicket);
//写入cookie
Response.Cookies.Add(cookie);
Session["UserId"] = userInfo.UserId;
//跳转
if (userInfo.UserRoleId == 3 || userInfo.UserRoleId == 2)
{
//Response.Redirect(FormsAuthentication.GetRedirectUrl(name,true));
Dispaly(userInfo);
}
else
{
if (userInfo.UserRoleId == 4)
{
Message.Show("您尚未经过审核,暂时不能登录!", this);
return;
}
string managerRegex = ConfigurationManager.AppSettings["SystemRoles"];
//string customerRegex = ConfigurationManager.AppSettings["CustomerRoles"];
if (Regex.IsMatch(userInfo.RoleName, managerRegex))
{
Response.Redirect("~/Admin/Manager/AdminHome.aspx");
}
//else if (Regex.IsMatch(userInfo.RoleName, customerRegex))
//{
// Response.Redirect("~/Admin/MemberRemit/MySpace.aspx");
//}
}
userInfo.LastIp = Request.UserHostAddress;
userInfo.LastTime = DateTime.Now;
BLL.Userinfo.UpdateUser(userInfo);
msn:sun.jh2010@live.cn[上班时间都在线]
Email:sunjh2010@live.cn
小妹在此谢谢了O(∩_∩)O~ --------------------编程问答--------------------
看清楚点,是部门放下拉 --------------------编程问答-------------------- <asp:textbox runat="server" id=" text_text" textmode="motiline">我是过来瞅瞅的</textbox>
<asp:textbox runat="server" id=" text_text" textmode="motiline">我是过来瞅瞅的</textbox>--------------------编程问答--------------------
LZ的意思是部门放下拉框里- - --------------------编程问答--------------------
就是这种的安全呀 --------------------编程问答-------------------- 学习中。。。 --------------------编程问答-------------------- 我刚发现,这是07年的帖子。。。不知道楼主已经很厉害了还是。。。 --------------------编程问答-------------------- 落伍了07年的时候楼主都在用SAP.NET我才在用,悲剧呀
--------------------编程问答-------------------- using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
txtUserName.Focus();
if (!IsPostBack)
{
if (Request.UrlReferrer!=null)
{
ViewState["ReferrerUrl"] = Request.UrlReferrer.ToString();
}
}
}
protected void btnLogin_Click(object sender, EventArgs e)
{
lblMessage.Text = string.Empty;
if (Request.Cookies["CheckCode"] == null)
{
lblMessage.Text = "您的浏览器设置已被禁用Cookies,请设置浏览器允许使用Cookies后使用本系统";
return;
}
if (string.Compare(Request.Cookies["CheckCode"].Value.ToLower(), txtCheckCode.Text.ToLower()) != 0)
{
lblMessage.Text = "验证码错误,请输入正确的验证码";
return;
}
string strSource = "server=(local);database=xtgj;uid=sa;pwd=sa";
SqlConnection conn = new SqlConnection(strSource);
SqlCommand cmd = new SqlCommand("validatelogin", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@username", SqlDbType.VarChar).Value = txtUserName.Text.Trim();
cmd.Parameters.Add("@cryptpassword", SqlDbType.VarChar).Value = txtPassword.Text.Trim();
String userid = "";
try
{
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
userid = dr["userid"].ToString();
}
}
catch (Exception)
{
lblMessage.Text = "服务器错误,请稍后再试!";
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
if ((userid != null) && (userid!=""))
{
Session["UserName"] = txtUserName.Text.Trim();
if (ViewState["ReferrerUrl"] != null)
{
Response.Redirect(ViewState["ReferrerUrl"].ToString());
}
else
{
Response.Redirect("default.aspx");
}
}
else
{
lblMessage.Text = "用户名或密码错误!";
}
}
}
补充:.NET技术 , ASP.NET