Я хочу использовать Javascript для вызова .NET WebService, Как ограничить доступ? - PullRequest
0 голосов
/ 06 мая 2011

У меня есть .net webservice, как http://tempurl.org/webservice.asmx Я хочу назвать это, используя Javascript, может быть, какой-нибудь jquery lib. Q1: Как ограничить доступ только к себе? Q2: или Как реализовать аутентификацию на основе ролей.

Edit: Я хочу развернуть веб-сервис самостоятельно, например:

ProjectA
ProjectB
ProjectWebService

Мне нужно, чтобы пользователи входили в ProjectA и ProjectB и могли использовать ProjectWebService.

1 Ответ

1 голос
/ 06 мая 2011

просто предложение, поскольку вы знаете, что есть много способов снять шкуру с кошки, поэтому есть один. Сначала включите состояние сеанса через вызовы к сервису, используя

 [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, удачи:)

...