0

我在 asp.net 中使用了 Jquery 登录控制 loke 的代码,但对我可以在哪里以及如何简单地验证用户名和密码感到困惑。

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# 身份验证代码?给一些线程也m new bie in jquery 谢谢

4

2 回答 2

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 调用返回登录页面 html

如何在 jQuery 和 AJAX 中使用 Basic Auth?

于 2012-10-29T07:22:05.210 回答
1

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

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

如果要通过 jQuery AJAX 请求发送,可以使用方法,这里jQuery.ajax解释的很清楚,参数中带有对应的 url 。 在服务器端,您的身份验证可能如下所示: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/票证的到期时间到期。
希望这些信息对您有所帮助。

于 2012-10-29T07:35:27.557 回答