PHP'nin SoapClient kullanarak istekleri arasında oturum verileri koruyarak

0 Cevap php

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:

  1. Web Servisi'nin Context.Session veri get_soap_client() tarafından alınan bir SoapClient nesneden yapılmış ardışık istekleri arasında korunur?

  2. Web Servisi'nin Context.Session veri SoapClient different yapılan ardışık istekleri arasında korunur bunları ihtiyaç olarak anında alınır nesneleri?

  3. Ö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ı?

0 Cevap