WebService代码如下
public class UserInfoService : System.Web.Services.WebService
{
[WebMethod(EnableSession = true)]
public bool login(string userName, string password)
{
if (Session["user"] != null) return true;
if (userName == password && userName.Length == 5)
{
Session["user"] = userName;
return true;
}
return false;
}
[WebMethod(EnableSession = true)]
public void logout()
{
Session.Remove("user");
}
[WebMethod(EnableSession = true)]
public string GetUserName(string id)
{
if (Session["user"] == null) return null;
return "User_" + id;
}
[WebMethod(EnableSession = true)]
public User GetUserById(string id)
{
if (Session["user"] == null) return null;
User user = new User();
user.Id = id;
user.UserName = GetUserName(id);
user.Password = "123456";
return user;
}
}
用控制台访问这个WebService代码:
static void Main(string[] args)
{
var client = new UserInfoServiceSoapClient();
Console.WriteLine("Login:");
Console.Write("UserName:");
var ln = Console.ReadLine();
Console.Write("Password:");
var lp = Console.ReadLine();
if (!client.login(ln, lp)) { Console.WriteLine("Login Failed"); return; }
Console.Write("输入UserId:");
var userId = Console.ReadLine();
var user = client.GetUserById(userId);
Console.WriteLine(user.Id);
Console.WriteLine(user.UserName);
Console.WriteLine(user.Password);
Console.ReadKey();
}
但是Session好像并没起作用,网上查了,说使用CookieContainer
但是这个CookieContainer到底在哪里设置啊?
在webService里面Session默认是不可用的,必须得开启Session才能使用,如
[WebMethod(EnableSession = true)]
public string Login(string name)
{
Context.Session["name"] = name;
return name;
}
需要在当前方法上启用Session [WebMethod(EnableSession = true)]
原文引用,百度知道 地址:http://zhidao.baidu.com/question/255380495.html