Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Авторизация в веб-сервисах


Автор: useless 31.5.2007, 13:47
Коллеги, подскажите !!!
Как реализовать авторизацию в веб-сервисе?
Например, имеется какой-то метод. Нужно разрешить обращаться к нему только определённым пользователям.
Кто делал что-то подобное в веб-сервисах, поделитесь пожалуйста.

P.S. От жары запарил и создал вместо темы новость.  smile  Модеры, почистите, плиз. Извините. 

Автор: Exception 31.5.2007, 16:33
http://msdn2.microsoft.com/en-us/library/ms977312.aspx

Автор: useless 1.6.2007, 06:14
Exception, спасибо, конечно.
Но хотелось бы примеров применительно к xml-службам.
Как заюзать вот эти все токены в моей службе?
Вот создал я к примеру проект в VS2005. И чего там куда втыкать?
Я подозреваю, что в студии 2005 это ещё не реализовано и придётся ручками кодить. Но как?

Автор: Mymik 1.6.2007, 09:00
useless, 
Тебе понадобиться дополнительный класс
Код

public class AuthHeader : System.Web.Services.Protocols.SoapHeader
{
    public string Username;
    public string Password;
}

Это и будет твой класс авторизации.

Непосредственно в твоем классе веб-сервиса нужно добавить поле, которая будет этим классом
Код

public AuthHeader Authentication;


У твоего метода нужно добавить атрибут
Код

[SoapHeader ("Authentication", Required=true)]


Непосредственно в методе ты будешь проверять работу авторизации
Код

if(Authentication.Username == "test" && Authentication.Password == "test")
{
    /* исполняемый код */
}


При вызове web-сервиса. ты будешь делать это примерно вот так вот
Код

localhost.WebService webService = new AuthWebService.WebService();
localhost.AuthHeader authentication = new AuthWebService.AuthHeader();

authentication.Username = "test";
authentication.Password = "test";
webService.AuthHeaderValue = authentication;

/* Дальше идет непосредственный вызов метода для сервиса */


Автор: useless 2.6.2007, 06:21
Вот это ближе к телу.
Спасибо, Mymik.
Только вот что меня терзает. Безопасно ли так передавать пароль? Есть ли возможность перехватить пароль? SOAP-заголовки передаются в открытую?

Автор: Mymik 2.6.2007, 11:04
useless, AFAIK, SOAP передает в виде обычного xml... Точнее он на входе в виде обычного xml. А вот как летают пакеты... черт его знает... никогда даже и не интересовался.

Вот что нашел в google. Походу это отдельные разработки
http://www.microsoft.com/rus/msdn/magazine/archive/2003-11/WsSecurity.asp <<-- статья и внизу архивчик с примером
http://fububy.na.by/index.php?elif=soap/a4dd19e1b57dd8c0ca5c9d567f160ec4.htm <<-- небольшое обсуждение. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)