Ben bir veritabanı sorguları gerçekleştiren bir ASP.NET Web hizmeti geliştirdik. Şimdi veritabanına erişim gerektiren herhangi bir şey için Web hizmeti tüketen bir PHP Web sitesi geliştiriyorum. Ben Web hizmeti tüketmek için yeni bir SoapClient oluşturur aşağıdaki işlevi yazdım:
function get_soap_client()
{
if (!file_exists('wsdl_path.txt')
return NULL;
if (!$file = fopen('wsdl_path.txt', 'r'))
return NULL;
$path = fgets($file);
fclose($file);
return new SoapClient($path);
}
Bir stateless Web hizmeti için bir müşteri olsun demek gibi ben zaten bu fonksiyonu test ettik ve bu işi yapar. Örneğin, bu (kimin kontrol akış devlet tarafından etkilenmez) Benim Web sitesinin giriş fonksiyonu:
function try_login($user, $pass)
{
$client = get_soap_client();
// ASP.NET Web Services encapsulate all inputs in a single object.
$param = new stdClass();
$param->user = $user;
$param->pass = $pass;
// Execute the WebMethod TryLogin and return its result.
// ASP.NET Web Services encapsulate all outputs in a single object.
return $client->TryLogin($param)->TryLoginResult;
}
Bu da aşağıdaki WebMethod'ı çağırır:
[WebMethod(EnableSession = true)]
public bool TryLogin(string user, string pass)
{
SqlParameter[] pars = new SqlParameter[2];
pars[0] = new SqlParameter("@User", SqlDbType.VarChar, 20);
pars[0].Value = user;
pars[1] = new SqlParameter("@Pass", SqlDbType.VarChar, 20);
pars[1].Value = pass;
// The Stored Procedure returns a row if the user and password are OK.
// Otherwise, it returns an empty recordset.
DataTable dt = Utilities.RetrieveFromStoredProcedure('[dbo].[sp_TryLogin]', pars);
if (dt.Rows.Count == 0) // Wrong user and/or password
{
Context.Session.Abandon();
return false;
}
else
return true;
}
Ancak, Web Servis Context.Session
veri get_soap_client()
tarafından alınan SoapClient
nesnelerden yapılmış ardışık istekleri arasında korunur olmadığını bilmiyorum. Yani şu soru var:
Web Servisi'nin
Context.Session
veriget_soap_client()
tarafından alınan birSoapClient
nesneden yapılmış ardışık istekleri arasında korunur?Web Servisi'nin
Context.Session
veriSoapClient
different yapılan ardışık istekleri arasında korunur bunları ihtiyaç olarak anında alınır nesneleri?Önceki sorunun cevabı "hayır" ise, bir PHP devlet değişken içine
SoapClient
'ın oturum verilerini seri hale getirmek için herhangi bir yolu var mı?