¿Cómo puedo tener una identificación de sesión en wcf Service

Estoy codificando un servicio de autenticación que tiene varios métodos. Uno de estos métodos es ChangePassword. Quiero cuando cualquier cuerpo quiera cambiar la contraseña, inicie sesión en el sistema antes. Para esto quiero tener una identificación de sesión y antes de cambiar la contraseña, verifíquelo.

¿Cómo puedo hacer eso y tiene esta sesión agotada?

EDIT 1)

Escribo este código, pero mi sesión es nula cada vez que quiero obtener su valor:

Clase

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class Service2 : IService2
{
    string result
    {   // Store result in AspNet session.
        get
        {
            if (HttpContext.Current.Session["Result"] != null)
                return HttpContext.Current.Session["Result"].ToString();
            return "Session Is Null";
        }
        set
        {
            HttpContext.Current.Session["Result"] = value;
        }
    }

    public void SetSession(string Val)
    {
        result = Val;
    }

    public string GetSession()
    {
        return result;
    }

interfaz

[ServiceContract(SessionMode = SessionMode.Required)]
public interface IService2
{
    [OperationContract]
    void SetSession(string Val);

    [OperationContract]
    string GetSession();
}

web.config

  <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />

EDIT 2) Escribí este código pero no funciona:

 private void button1_Click(object sender, EventArgs e)
    {
        MyService2.Service2Client srv = new MyService2.Service2Client();
        textBox1.Text = srv.GetSession();

    }

    private void button2_Click(object sender, EventArgs e)
    {
        MyService2.Service2Client srv = new MyService2.Service2Client();
        srv.SetSession(textBox1.Text);
        textBox1.Clear();
    }

cada vez que quiero obtener el valor de la sesión me sale "La sesión es nula". ¿Por qué?