如何使用asp.net在Jquery中验证用户名密码?

时间:2012-10-29 06:48:21

标签: c# asp.net ajax jquery

我有使用这个进入asp.net的Jquery登录控件的代码,但是我很困惑在哪里以及如何简单地验证用户名和密码。

Login.aspx

<head>
    <link href="css/style.css" rel="stylesheet" type="text/css" />
    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script src="Scripts/login.js" type="text/javascript"></script>
</head>

 <div id="loginBox">                
                    <form id="loginForm">
                        <fieldset id="body">
                            <fieldset>
                                <label for="email">Email Address</label>
                                <input type="text" name="email" id="email" />
                            </fieldset>
                            <fieldset>
                                <label for="password">Password</label>
                                <input type="password" name="password" id="password" />
                            </fieldset>
                            <input type="submit" id="login" value="Sign in" />
                            <label for="checkbox"><input type="checkbox" id="checkbox" />Remember me</label>
                        </fieldset>
                        <span><a href="#">Forgot your password?</a></span>
                    </form>
                </div>

Login.js
// Login Form

$(function() {
    var button = $('#loginButton');
    var box = $('#loginBox');
    var form = $('#loginForm');
    button.removeAttr('href');
    button.mouseup(function(login) {
        box.toggle();
        button.toggleClass('active');
    });
    form.mouseup(function() { 
        return false;
    });
    $(this).mouseup(function(login) {
        if(!($(login.target).parent('#loginButton').length > 0)) {
            button.removeClass('active');
            box.hide();
        }
    });
});

现在我怎么能用这个Jquery代码使用我的asp.net身份验证? 在哪里以及如何编写c#身份验证代码? 在jquery中给一些线程也是一个新的bie 感谢

2 个答案:

答案 0 :(得分:3)

以下是如何编写一个以

开头的ajax调用
var usernameText = $("#usernameTextbox");
var passwordText = $("#passwordTextbox");

$.ajax({
    type: 'GET',
    url: '/Account/ValidateUser',
    async: true,
    dataType: 'json',
    data:
    {
        userName: usernameText,
        password: passwordText
    },
    success: function(result) {
        if(result){
            // redirect user to required page
        }
        else{
            // show error on some div that usrname and password do not match
        }
    }
});

关于SO的相关问题

MVC 4 Jquery Ajax call returns login page html

How to use Basic Auth with jQuery and AJAX?

答案 1 :(得分:1)

我不确定你要做什么,但为了使用asp.net执行登录,你应该以某种方式将数据发送到服务器。您可以通过两种方式完成此操作:使用表单或AJAX请求发送它。如果要在表单中发送,则应在标记表单中指定操作,例如

<form id="loginForm" action="MySite/Logon">
    <!-- fields, labels, etc. -->
</form>

如果您想通过jQuery AJAX请求发送它,您可以使用jQuery.ajax方法(明确解释为here)和url参数中的相应网址。
在服务器端,您的身份验证可能如下所示:

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( // create authentication ticket
    1, // id
    email, // user name
    DateTime.Now, // date of issue
    DateTime.Now.AddMinutes(15), // expiration date
    true, // true if your ticket will be stored in a cookie, that will be kept by browser across the sessions
    userdata, // any text data, that you want to add to ticket (e.g. user roles)
    FormsAuthentication.FormsCookiePath // path associated with your ticket
);
string hashedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(
    FormsAuthentication.FormsCookieName, hashedTicket); // adding your ticket to cookie
cookie.Expires = ticket.Expiration;
Response.Cookies.Add(cookie); // sending cookie to client with current response

执行这些操作后,您的客户端将被识别为已通过身份验证,直到他注销或Cookie /票证到期时间到期为止。
希望这些信息对您有所帮助。