ajax配合一般处理程序(.ashx)登录的一般写法

2018-06-18 01:48:42来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

前端:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>首页</title>
    <script type="text/javascript" src="JQuery/jquery.min.js"></script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <input type="text" id="txtlogin" value="车辆管理员1" />
            <input type="button" onclick="Login()" value="登录" />
        </div>
    </form>
    <script type="text/javascript">
        function Login() {
            //var userid = $("#txtlogin").val();
            $.ajax({
                type: "post",
                url: "CarManager/ashx/User.ashx",
                data: { "action": "userlogin", "username": $("#txtlogin").val() },
                dataType: "json",
                success: function (data) {
                    if (data.msg="1") {
                        location.href = "CarManager/Main.aspx";
                    }
                }
            });
        }
    </script>
</body>
</html>

 后端:

public class User : IHttpHandler, IRequiresSessionState
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";

        StringBuilder _strContent = new StringBuilder();
        if (_strContent.Length == 0)
        {
            string _strAction = context.Request.Params["action"];
            if (string.IsNullOrEmpty(_strAction))
            {
                _strContent.Append("{\"msg\": \"0\", \"msgbox\": \"禁止访问!\",\"rows\": []}");
            }
            else
            {
                switch (_strAction.Trim().ToLower())
                {
                    case "userlogin": _strContent.Append(UserLogin(context)); break;
                    default: break;
                }
            }
        }
        context.Response.Write(_strContent.ToString());
    }

    private string UserLogin(HttpContext context)
    {
        string result = "";
        string _username = context.Request.Form["username"];
        string _password = context.Request.Form["password"];
        Model.cmUser model = new Model.cmUser();
        if (context.Session["UserModel"] != null)
        {//当前浏览器已经有用户登录 判断是不是当前输入的用户
            model = (Model.cmUser)context.Session["UserModel"];
            if (model.Name != _username)
            {
                result = "{\"msg\": \"0\", \"msgbox\": \"此浏览器已经有其他用户登录!\"}";
            }
            else
            {
                result = "{\"msg\": \"1\", \"msgbox\": \"登录成功!\"}";
            }
        }
        else
        {
            BLL.cmUser bll = new BLL.cmUser();
            string strWhere = string.Format("[Name]='{0}'", _username);// and [Password]='{1}', _password
            DataTable dt = bll.GetList(1, strWhere, " ID ").Tables[0];
            if (dt != null)
            {//用户和密码正确
                int _userid = 0;
                int.TryParse(dt.Rows[0]["ID"].ToString(), out _userid);
                model.ID = _userid;
                model.Name = dt.Rows[0]["Name"].ToString();
                int _type = 0;
                int.TryParse(dt.Rows[0]["Type"].ToString(), out _type);
                model.Type = _type;

                context.Session["UserModel"] = model;
                result = "{\"msg\": \"1\", \"msgbox\": \"登录成功!\"}";
            }
            else
            {
                result= "{\"msg\": \"0\", \"msgbox\": \"用户名或密码错误!\"}"; ;
            }
        }
        return result;
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:.NET 实现并行的几种方式(二)

下一篇:去除win7桌面图标小箭头.bat