просто предложение, поскольку вы знаете, что есть много способов снять шкуру с кошки, поэтому есть один.
Сначала включите состояние сеанса через вызовы к сервису, используя
[WebMethod(EnableSession = true)]
Затем есть метод веб-службы для входа в систему, который сохраняет данные пользователя в сеансе, это поддерживает стандартный поставщик членства для asp.net, пример кода предупреждения
public bool Login(string userName, string password)
{
//validate login
var user = Membership.GetUser(userName);
var valid = Membership.ValidateUser(user.UserName, password));
if (valid)
HttpContext.Current.Session["user"] = user;
return valid;
}
Затем вы можете в методе веб-службы проверить пользователя.
public void SomeServerMethod()
{
var user = HttpContext.Current.Session["user"];
if (user == null)
throw new Exception("Please login first");
if (user.IsInRole("FooRole")
DoStuff();
else
throw new Exception("Seriously? dude you dont have those rights");
}
Для противодействия отключению сети лучше всего зайти на Https, удачи:)