Transfert de : http://www.cnblogs.com/andiki/archive/2010/05/17/1737254.html
Quelques petites choses à noter concernant jquery Ajax appel WebService (C#) :
1, web.config devez configurer 2 places
Le
≪ Supprimer verbe = « * » chemin d’accès = « fichiers *.asmx » / >
≪ Ajouter verbe = « * » chemin d’accès = « fichiers *.asmx » valider = « false » Type = « System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version = 1.0.61025.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 « / >
Le
Adhérez entre le
Le
Le
≪ Nom = « HttpPost » / >
≪ Nom = « HttpGet » / >
Le
Le
2. écrire correctement le code Webserivce
Le
Note de synthèse par UserValidate
Le
[WebService (Namespace = « http://tempuri.org/ »)]
[WebServiceBinding (ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem (False)]
Pour permettre à ce service Web à appeler à partir d’un script à l’aide d’ASP.NET AJAX, décommentez la liaison descendante.
[System.Web.Script.Services.ScriptService]
Public class UserValidate:System.Web.Services.WebService
{
DFHon.Content.Common.rootPublic rp = new DFHon.Content.Common.rootPublic () ;
[WebMethod]
[ScriptMethod (ResponseFormat = ResponseFormat.Json)]
Public string ValidateUserLogState ()
{
Chaîne de résultat = « » ;
HttpCookie cookie = HttpContext.Current.Request.Cookies["DHFonMenberInfo »] ;
Si (cookie ! = null)
{
String username = System.Web.HttpUtility.UrlDecode (cookie["MenberName"]) ;
Ipoint int = 0 ;
Gpoint int = 0 ;
Essayez
{
DataTable dt = UserBll.ExecuteUserAllInfo (nom d’utilisateur) ;
Si (dt. Rows.Count 0)
{
IPoint = int. Parse (dt. Lignes [0] [« iPoint »]. ToString ()) ;
Gpoint = int. Parse (dt. Lignes [0] [« gPoint »]. ToString ()) ;
}
}
catch
{ }
Résultat = « {« utilisateur » : {« id » : ' + cookie [ » UserId «] + » ', « name » : « + nom d’utilisateur «, » message » : ' + rp.getUserMsg (DFHon. Global.CurrentCookie.UserName) + « « IPoint » : ' » + ipoint. ToString () + « «, » gpoint ' : ' + gpoint. ToString () + « "}} » ;
}
D’autre
{
Résultat = « {« utilisateur » : {« id » : « 0 », « nom » : «, » message ' : « 0 », « ipoint » : « 0 », « gpoint » : ' 0 "}} » ;
}
Résultat de retour ;
}
[WebMethod]
[ScriptMethod (ResponseFormat = ResponseFormat.Json)]
Public string UserLogin (string userName, String Mot_passe)
{
Chaîne de retour = « » ;
Essayez
{
GlobalUserInfo info ;
DFHon.Content.UserLogin _UserLogin = new DFHon.Content.UserLogin () ;
État EnumLoginState = _UserLogin.PersonLogin (HttpUtility.UrlDecode (userName), Mot_passe, infos) ;
Si (état == EnumLoginState.Succeed)
{
DFHon.Global.CurrentCookie.Set (info) ;
DFHon.API.PDO.DiscuzNT.PassportLogin.UserLogin (Server.UrlDecode (userName), Mot_passe, -1) ;
Ipoint int = 0 ;
Gpoint int = 0 ;
DataTable dt = UserBll.ExecuteUserAllInfo (nom d’utilisateur) ;
Si (dt. Rows.Count 0)
{
IPoint = int. Parse (dt. Lignes [0] [« iPoint »]. ToString ()) ;
Gpoint = int. Parse (dt. Lignes [0] [« gPoint »]. ToString ()) ;
}
Retour = « {« utilisateur » : {« id » : ' » + d’infos. UserId.ToString () + « ', « name » : ' » + d’infos. Nom d’utilisateur + « «, » message ' : ' + rp.getUserMsg (userName) + » ipoint «, » ' : ' « + ipoint. ToString () + « «, » gpoint ' : ' + gpoint. ToString () + « "}} » ;
}
D’autre
{
Int ID = 0 ; Statut : utilisateur-2 erreur de mot de passe pour le nom d’utilisateur verrouillé-1
Interrupteur (état)
{
Affaire EnumLoginState.Err_Locked :
ID =-2 ;
Rupture ;
Affaire EnumLoginState.Err_UserNameOrPwdError :
ID =-1 ;
Rupture ;
Par défaut :
Rupture ;
}
Retour = ' {« user » : {« id » : « + ID + «, » nom » : «, » message ' : « 0 », « ipoint » : « 0 », « gpoint » : ' 0 '}} ' ;
}
}
catch
{
Retour = « {« utilisateur » : {« id » : « 0 », « nom » : «, » message ' : « 0 », « ipoint » : « 0 », « gpoint » : ' 0 "}} » ;
}
Retour retour ;
}
[WebMethod]
Public string UserLogout ()
{
Si (HttpContext.Current.Request.Cookies["DHFonMenberInfo"]!=, null)
{
HttpCookie cookie = new HttpCookie (« DHFonMenberInfo ») ;
Cookies. Expire = System.DateTime.Now.AddDays (-1) ;
Cookies. Domain = DFHon.Config.BaseConfig.getV (« Weblogin ») ;
HttpContext.Current.Response.AppendCookie (cookie) ;
}
Retourner à « 1 » ;
}
DFHon.Content.user UserBll = new DFHon.Content.user () ;
[WebMethod]
Public string ValidateUserEmail (courriel de chaîne)
{
Chaîne de résultat = « 0 » ; Retourne le résultat-2 boîte aux lettres est vide-1 format de la boîte aux lettres est incorrect 0 boîte aux lettres existe 1 remplir correctement
Si (string. IsNullOrEmpty (courriel)
{
Résultat = « 2 » ; Boîte aux lettres est vide
}
Else if ( !. IsValidEmail (courriel)
{
Résultat = « 1 » ; Format de la boîte aux lettres incorrect
}
ElseIf (UserBll.sel_useremail (courriel), 0)
{
Résultat = « 0 » ; Boîte aux lettres existe
}
D’autre
{
Résultat = « 1 » ; Peuvent s’inscrire
}
Résultat de retour ;
}
[WebMethod]
Public string ValidateUserName (string username)
{
Chaîne de résultat = « 0 » ; Valeur de retour :-1 longueur de nom utilisateur est 2-16, nom d’utilisateur 0 existe ; 1 peuvent être enregistrés
Si (nom d’utilisateur == « » || Nom d’utilisateur == Null || nom d'utilisateur. Longueur 2 || nom d'utilisateur. Longueur 16)
{
Résultat = « 1 » ;
}
ElseIf (UserBll.sel_username (username) ! = 0)
{
Résultat = « 0 » ;
}
D’autre
{
Résultat = « 1 » ;
}
Résultat de retour ;
}
Public bool IsValidEmail (chaîne strIn)
{//Return TRUE si strIn est dans le format d’adresse électronique valide.
Retour Regex.IsMatch (strIn, @ « ^ [\w-\.] +) @ (\[[0-9]{1,3}\. [0-9] {1,3} \. [0-9] {1,3} \.) | ([\W-]+\.) (+)) ([A-zA-Z] {2,4} | [0-9] {1,3}) (\]?) $ " );
}
} 3, au premier plan code JQuery
Script de la
$ (Function () {}
$ (« #Userloging »). montrer () ;
Login Box traitement commence
Connexion de charge statut
$.Ajax ({
Type : « POST », / / accès WebService utiliser demande Post
ContentType : « Application/json ; charset = utf-8 », / / WebService retourne le type Json
URL : « /API/Service/UserValidate.asmx/ValidateUserLogState",//Call WebService
Données : « {} », paramètre //Email
Type de données : « JSON »,
BeforeSend:function (x) {x.setRequestHeader (« Content-Type », « Application/json ; charset = utf-8 ") ;},
Erreur : function (x, E) {},
Succès : function (réponse) {function //callback, résultat, valeur de retour
$ (« #Userloging »). masquer () ;
Var json = eval (' (' + RESPONSE.D + ') ') ;
Var userid = json.user.id ;
Si (userid 0) {}
$ (« #Spanusername »). HTML (json.user.name) ;
$ (« #Spanmessagenum »). HTML (json.user.message) ;
$ (« #Userloginsucced »). montrer () ;
$ (« #Userloginbox »). masquer () ;
}
}
});
connectez-vous
$ (« #Userlogbutton »). Cliquez (function () {}
Var username = $ (« #username »). Val () ;
Mot_passe var = $ (« #userpassword »). Val () ;
Si (nom d’utilisateur ! = « » Mot_passe ! = «) {}
$ (« #Userloging »). montrer () ;
$.Ajax ({
Type : « POST », / / accès WebService utiliser demande Post
ContentType : « Application/json ; charset = utf-8 », / / WebService retourne le type Json
URL : « /API/Service/UserValidate.asmx/UserLogin",//Call WebService
Données : « {nom d’utilisateur : "+ le nom d’utilisateur + » ', Mot_passe : ' + mot_passe + « '} ', //Email paramètre
Type de données : « JSON »,
BeforeSend:function (x) {x.setRequestHeader (« Content-Type », « Application/json ; charset = utf-8 ") ;},
Erreur : function (x, E) {}
},
Succès : function (Result) {function //callback, résultat, valeur de retour
$ (« #Userloging »). masquer () ;
Var json = eval (' (' + resultat.d + ') ') ;
Var userid = json.user.id ;
Si (userid 0) {}
$ (« #Spanusername »). HTML (json.user.name) ;
$ (« #Spanmessagenum »). HTML (json.user.message) ;
$ (« #Userloginsucced »). montrer () ;
$ (« #Userloginbox »). masquer () ;
}
Else {}
Commutateur (userid) {}
Affaire-2 :
Alert (« l’utilisateur est verrouillé.) Veuillez vous connecter après 30 minutes. " );
$ (« #Username »). concentrer () ;
Rupture ;
Affaire-1 :
Alert (« utilisateur mot de passe ou nom erreur.) Veuillez vérifier votre nom d’utilisateur et mot de passe. " );
$ (« #Userpassword »). concentrer () ;
Rupture ;
Par défaut :
Alert (« ouverture de session a échoué.) Veuillez vérifier votre nom d’utilisateur et mot de passe et réessayez. " );
$ (« #Userpassword »). concentrer () ;
Rupture ;
}
}
}
});
}
ElseIf (nom d’utilisateur == « ») {}
Alert (« le nom d’utilisateur ne peut pas être vide.) " );
$ (« #Username »). concentrer () ;
}
ElseIf (mot_passe == « ») {}
Alert (« le mot de passe ne peut pas être vide.) " );
$ (« #Userpassword »). concentrer () ;
}
});
Sortie
$ (« #Logout »). Cliquez (function () {}
$ (« #Userloging »). montrer () ;
$.Ajax ({
Type : « POST », / / accès WebService utiliser demande Post
ContentType : « Application/json ; utf-8 », / / WebService retourne le type Json
URL : « /API/Service/UserValidate.asmx/UserLogout",//Call WebService
Données : « {} », paramètre //Email
Type de données : « JSON »,
BeforeSend:function (x) {x.setRequestHeader (« Content-Type », « Application/json ; charset = utf-8 ") ;},
Succès : function (Result) {function //callback, résultat, valeur de retour
$ (« #Userloging »). masquer () ;
Si (resultat.D 0) {}
$ (« #Userloginsucced »). masquer () ;
$ (« #Userloginbox »). montrer () ;
}
}
});
}); Fin du traitement de boîte de connexion
});
Script > / The