2009-05-18 13 views
6

JQueryを使用してASP.NET 2.0サイト用のAJAXログインを実装する方法を理解しようとしています。私は既にサイト上に実装されている他のシンプルなJQuery AJAXアプリケーションを持っていますが、標準のログイン制御をAJAX経由でPOSTに変換する方法は不明です。私はlogin.aspxページメソッドを公開する必要がありますか?どんな助けも素晴らしいだろう。ASP.NET 2.0 JQuery AJAXログイン

答えて

8

これがどのように実装できるかについてのアイデアがあります。これは完全なコードではありませんが、適切なトラックで始めるには十分なはずです。

ユーザ名/パスワード用の独自のログインフォームフィールドを作成する必要があります。

これと同様の方法で認証用のASMXまたはWCFのWebサービスを作成します。

[WebMethod] 
public string AuthenticateUser(string username, string password) 
{ 
    string result = "Invalid Username or Password"; 
    if(Membership.ValidateUser(userName, password)) 
    { 
     FormsAuthentication.SetAuthCookie(u.UserName, false); 
     result = "successful"; 
    } 
    return result; 
} 

その後、あなたのログインボタンのクリックイベントからあなたがWebサービスにユーザー名/パスワードを投稿するjQueryのAJAXを使用することができます。

$.ajax({ 
    type: "POST", 
    url: "WebService.asmx/AuthenticateUser", 
    data: "{username:"+$('#txtUsername').val()+",password:"+$('#txtPassword').val()+"}", 
    success: function(result) { 
    alert(result); 
    //if(result=='successful') 
    // redirectUser to the home page 
    } 
}); 
+0

甘いです。それは大いに役立ちます。もう一つの質問があります。 Webサービスからセッションに情報を格納する方法はありますか? – GreenEggs

+1

はい、WebMethod属性でセッションを有効にするだけです。 [WebMethod(EnableSession = true)]とHTTPContextのセッションが利用可能になります。 –

+0

恐ろしい!それはトンを助ける!ありがとう! – GreenEggs

1

ユーザー名とパスワードをプレーンテキスト形式で送信するという大きなセキュリティ上の問題があります。 SSLを使用するか、何らかの方法でこれらのデータをハッシュする必要があります。 take a look here