Je développe des webservices, dans lesquels je souhaite conserver des informations d'état afin que toutes les méthodes Web ne soient accessibles qu'après la connexion. J'ai essayé mais j'ai rencontré un problème. Je joins mon code. Toute autre alternative sera la bienvenue.
[
WebService(Namespace = "http://amSubfah.org/")]
[
WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// Pour permettre à ce service Web d'être appelé à partir de script, en utilisant ASP.NET AJAX, décompressez la ligne suivante.
// [System.Web.script.Services.ScriptService]
public
class Login : System.Web.Services.WebService {
Message msgObj = nouveau Message() ;
Classe de base b = nouvelle Classe de base() ;
PasswordEncryptionDecryption pedObj = new PasswordEncryptionDecryption() ;
public AuthHeader Authentication=new AuthHeader () ;
public Login () {
//Décommenter la ligne suivante si l'on utilise des composants conçus à l'avance
//InitializeComponent() ;
}
[
SoapHeader("Authentication", Required = true)]
[System.Web.Services.
WebMethod(EnableSession = true)]
public string checkUserLogin(string user, string pwd)
{
DataSet dsLogin = new DataSet() ;
Liste sqlParams = nouvelle Liste() ;
SqlParameter sqlParam1 = new SqlParameter("@UserName", SqlDbType.NVarChar) ;
sqlParam1.Value = user ;
sqlParams.Add(sqlParam1) ;
SqlParameter sqlParam2 = new SqlParameter("@Password", SqlDbType.NVarChar) ;
string pass = pedObj.encryptPassword(pwd) ;
sqlParam2.Value = pass ;
sqlParams.Add(sqlParam2) ;
essayer
{
b.initializeDBConnection() ;
dsLogin = b.execSelectLoginQuery(
Query.strSelectLoginData, sqlParams) ;
}
catch (SqlException sqlEx)
{
string str = msgObj.msgErrorMessage + sqlEx.Message + sqlEx.StackTrace ;
}
{if ((dsLogin != null) && (dsLogin.Tables[0].Rows.Count != 0))
{
Session[
"nom d'utilisateur"] = utilisateur ;
string sessionId = System.Guid.NewGuid().ToString() ;
Authentication.sessionId = sessionId ;
Authentication.Username = user ;
return msgObj.msgLoginSuccess ;
}
autre
return msgObj .msgLoginFail ;
}
//webmethod pour l'enregistrement
[
SoapHeader("Authentication", Required = true)]
[Système .Web .Services .
WebMethod (EnableSession =true )]
public string insertRegistrationDetails(string fName,string lName,string email,string pwd)
{
//string u = Session["username"].ToString() ;
//si (u == "")
//{
// // vérifierUserLogin(fName,pwd ) ;
// renvoie "Veuillez d'abord vous connecter" ;
//}
if (Authentication.Username == null || Authentication.sessionId == null)
{
return "Veuillez d'abord vous connecter" ;
}
Liste sqlParams = nouvelle Liste() ;
int insert = 0 ;
string msg = "" ;
SqlParameter sqlParam = new SqlParameter("@FName", SqlDbType.NVarChar) ;
sqlParam.Value = fName ;
sqlParam.Size = 50 ;
sqlParams.Add(sqlParam) ;
SqlParameter sqlParam1 = new SqlParameter("@LName", SqlDbType.NVarChar) ;
sqlParam1.Value = lName ;
sqlParam1.Size = 50 ;
sqlParams.Add(sqlParam1) ;
SqlParameter sqlParam5 = new SqlParameter("@Email", SqlDbType.NVarChar) ;
sqlParam5.Value = email ;
sqlParam5.Size = 50 ;
sqlParams.Add(sqlParam5) ;
SqlParameter sqlParam7 = new SqlParameter("@Password", SqlDbType.NVarChar) ;
sqlParam7.Value = pedObj .encryptPassword (pwd) ;
sqlParam7.Size = 50 ;
sqlParams.Add(sqlParam7) ;
essayer
{
b.initializeDBConnection() ;
insert = b.execByKeyParams(
Query.strInsertIntoRegistrationTable1, sqlParams) ;
si (insert !=0)
{
msg = msgObj .msgRecInsertedSuccess ;
}
}
catch (SqlException sqlEx)
{
string str = msgObj.msgErrorMessage + sqlEx.Message + sqlEx.StackTrace ;
}
return msg ;
}
public class AuthHeader : SoapHeader
{
public string Username ;
public string sessionId ;
}
}