Я создал службу WCF с поддержкой Silverlight, которая выглядит следующим образом: я использую basicHttpBinding
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class SLWebService
{
[OperationContract]
public string Login(string username, string password)
{
//Validate Username and Password against the Database.
// myctxt.Session["Uname"] = username;
HttpContext.Current.Session["username"] = username ;
return username;
}
[OperationContract]
public string ReturnUser()
{
return (string)HttpContext.Current.Session["username"];
}
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что я получаю значение имени пользователя, равное нулю каждый раз.Я использую эту службу WCF в клиенте Silverlight, которая выглядит следующим образом:
Page.xaml.cs:
private void btnSubmit_Click(object sender, RoutedEventArgs e)
{
SessionService.SLWebServiceClient client = new SessionService.SLWebServiceClient();
client.LoginAsync(txtuser.Text, txtpassword.Password);
NavigateRequest(1);
}
Welcome.xaml.cs
void Welcome_Loaded(object sender, RoutedEventArgs e)
{
SessionService.SLWebServiceClient client = new SessionService.SLWebServiceClient();
client.ReturnUserCompleted += new EventHandler<SessionService.ReturnUserCompletedEventArgs>(client_ReturnUserCompleted);
client.ReturnUserAsync();
}
void client_ReturnUserCompleted(object sender, SessionService.ReturnUserCompletedEventArgs e)
{
txtusername.Text = e.Result;
}
Ясоздание страницы входа (Page.xaml) и ввод имени пользователя и пароля, после чего он перенаправляет на страницу приветствия, которая приветствует текущего пользователя, но моя служба не возвращает имя пользователя, для которого сеанс пуст.
Спасибо.