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ê?