Como posso ter um ID de sessão no wcf Service

Estou codificando um serviço de autenticação que possui vários métodos.Um deles é ChangePassword. Quero que quando alguém quiser alterar a senha, faça logon no sistema antes. Para isso, quero ter um ID de sessão e, antes de alterar o passe, verifique-

Como posso fazer isso e esta sessão expirou?

EDIT 1)

Eu escrevo esse código, mas minha sessão é nula toda vez que eu quero obter seu valor:

Classe

[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;
    }

interface

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

    [OperationContract]
    string GetSession();
}

web.config

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

EDIT 2) Eu escrevi este código, mas ele não 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();
    }

toda vez que eu quero obter o valor da sessão eu recebo "Session Is Null" .Por quê?

questionAnswers(3)

yourAnswerToTheQuestion