当前位置:编程学习 > C#/ASP.NET >>

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
        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
--------------------编程问答-------------------- 上面的”代码同红色字体“就是和case"学生"里的代码是一样的 --------------------编程问答-------------------- 密码放下拉里面?
第一次见到  --------------------编程问答--------------------

 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 的步骤把... --------------------编程问答--------------------

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(); 
    }
--------------------编程问答-------------------- 这个问题不复杂,还是你自己先动手写,有问题大家帮你改吧 --------------------编程问答-------------------- 10楼的代码是对的 --------------------编程问答-------------------- 这个真的很好! --------------------编程问答-------------------- 好什么好,没顾及到登录的安全性 --------------------编程问答-------------------- System.Web.Security.FormsAuthentication.RedirectFromLoginPage("ss", false); --------------------编程问答--------------------

网上下个案例好好的研究研究 --------------------编程问答--------------------
引用 2 楼 lu159 的回复:
string   str   =   "select   manage_name,manage_pwd   from   manage   where   manage_name=@name   and   manage_pwd=@pwd ";
添加参数
if(dr.read())
{
      if(dropdownlist1.selectedItems.text   ==   "所在……


这个可以 --------------------编程问答--------------------  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;
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);
            }
        }
    }
}
--------------------编程问答-------------------- 可以这样做,先查询用户名是否存在(根据部门即下拉列表框),如果存在,再判断密码是否正确。如果正确就跳转到对应的页面 --------------------编程问答-------------------- 可以把数据库发过来。我帮你做,QQ:383210026 --------------------编程问答-------------------- 直接写SQL语句判断不就可以了。。存在就跳页! --------------------编程问答--------------------
引用 8 楼 suiyiminmin 的回复:
C# code

 if (this.TextBoxLoginName.Text.Trim().Equals(""))
        {
            ClientScript.RegisterStartupScript(GetType(), "loginNameNull", "<script>alert('用户名不能为空!');</script>");
        }
……

虽然没测试过 但是思路给了楼主 
Up+1 --------------------编程问答-------------------- 围观"xuanxuanlee"头像 
这女人啥时候胸大了? --------------------编程问答--------------------


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);








--------------------编程问答-------------------- 这个网上有很多的! --------------------编程问答-------------------- 密码加密解密我都有,你要不要? --------------------编程问答-------------------- 我想要密码加密解密的代码及处理方法学习学习,各位大侠谁有可否共享一下,我的QQ:648190146 
 msn:sun.jh2010@live.cn[上班时间都在线] 
 Email:sunjh2010@live.cn
小妹在此谢谢了O(∩_∩)O~ --------------------编程问答--------------------
引用 7 楼 sglcj 的回复:
密码放下拉里面?
第一次见到

看清楚点,是部门放下拉 --------------------编程问答-------------------- <asp:textbox runat="server" id=" text_text" textmode="motiline">我是过来瞅瞅的</textbox>
<asp:textbox runat="server" id=" text_text" textmode="motiline">我是过来瞅瞅的</textbox>
--------------------编程问答--------------------
引用 7 楼 sglcj 的回复:
密码放下拉里面?
第一次见到

LZ的意思是部门放下拉框里- - --------------------编程问答--------------------
引用 26 楼 a410787073 的回复:
C# code


string name = TxtName.Text.Trim();
            string pwd = TxtPassword.Text.Trim();
            Models.UserInfo userInfo = BLL.Userinfo.GetAllUserInfoByuserId(name);
            if (u……

就是这种的安全呀 --------------------编程问答-------------------- 学习中。。。 --------------------编程问答-------------------- 我刚发现,这是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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,