Практическое руководство. Настройка файлов Cookie проверки подлинности службы проверки подлинности WCF
Обновлен: Ноябрь 2007
В данном разделе описано, как настроить файл Cookie проверки подлинности (билет) для службы проверки подлинности ASP.NET при использовании последней в качестве службы Windows Communication Foundation (WCF). Файлы Cookie проверки подлинности настраиваются, когда необходимо сохранить данные пользователя в Cookie во время проверки подлинности.
![]() |
---|
В общем случае, хранение данных пользователя в свойствах профиля ASP.NET — это лучший вариант, чем хранение в файлах Cookie. Данные свойств профиля не привязаны к одному компьютеру и не ограничены временем существования файла Cookie. Кроме того, можно сохранять данные пользователя более безопасно в свойствах профиля. Настройка содержимого файлов Cookie полезна, если есть небольшое количество неконфиденциальных данных и не требуется использовать свойства профиля ASP.NET. |
После проверки подлинности учетных данных пользователя и до установки файла Cookie проверки подлинности происходит событие CreatingCookie. Можно настроить файл Cookie проверки подлинности, создав обработчик событий для события CreatingCookie и управляя файлом Cookie проверки подлинности самостоятельно. Можно получить доступ к имени пользователя, паролю и учетным данным посредством объекта CreatingCookieEventArgs, передаваемого обработчику событий.
Используйте реализацию WCF службы проверки подлинности для входа пользователя в систему из клиентского приложения, которое может отправлять и получать сообщения SOAP 1.1, например, из приложения на Java.
Настройка файла Cookie проверки подлинности
Необходимо создать обработчик событий для события CreatingCookie в файле Global.asax веб-приложения.
В обработчике добавьте сведения в свойство CustomCredential Cookie.
В представленном ниже примере показано, как настроить файл Cookie проверки подлинности путем добавления значения свойства CustomCredential свойству UserData.
Sub AuthenticationService_CreatingCookie(ByVal sender As Object, _ ByVal e As System.Web.ApplicationServices.CreatingCookieEventArgs) Dim ticket As FormsAuthenticationTicket = New _ FormsAuthenticationTicket _ (1, _ e.Username, _ DateTime.Now, _ DateTime.Now.AddMinutes(30), _ e.IsPersistent, _ e.CustomCredential, _ FormsAuthentication.FormsCookiePath) Dim encryptedTicket As String = FormsAuthentication.Encrypt(ticket) Dim cookie As HttpCookie = New _ HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket) cookie.Expires = DateTime.Now.AddMinutes(30) HttpContext.Current.Response.Cookies.Add(cookie) e.CookieIsSet = True End Sub
void AuthenticationService_CreatingCookie(object sender, System.Web.ApplicationServices.CreatingCookieEventArgs e) { FormsAuthenticationTicket ticket = new FormsAuthenticationTicket (1, e.UserName, DateTime.Now, DateTime.Now.AddMinutes(30), e.IsPersistent, e.CustomCredential, FormsAuthentication.FormsCookiePath); string encryptedTicket = FormsAuthentication.Encrypt(ticket); HttpCookie cookie = new HttpCookie (FormsAuthentication.FormsCookieName, encryptedTicket); cookie.Expires = DateTime.Now.AddMinutes(30); HttpContext.Current.Response.Cookies.Add(cookie); e.CookieIsSet = true; }
В методе Application_Start файла Global.asax осуществите привязку обработчика событий к событию CreatingCookie.
В следующем примере показано осуществление привязки обработчика к событию CreatingCookie.
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) AddHandler System.Web.ApplicationServices.AuthenticationService.CreatingCookie, _ AddressOf Me.AuthenticationService_CreatingCookie End Sub
void Application_Start(object sender, EventArgs e) { System.Web.ApplicationServices.AuthenticationService.CreatingCookie += new EventHandler<System.Web.ApplicationServices.CreatingCookieEventArgs> (AuthenticationService_CreatingCookie); }
Вызовите службу проверки подлинности из приложения, которое может принимать сообщения SOAP 1.1 от веб-службы.
Компиляция кода
Для работы предыдущих примеров необходимо настроить службу проверки подлинности на веб-сервере. Дополнительные сведения см. в разделе Практическое руководство. Включение службы проверки подлинности WCF.
Безопасность
При передаче конфиденциальных сведений, таких как учетные данные для проверки подлинности, осуществляйте доступ к службе проверки подлинности через SSL (с использованием протокола HTTPS). Дополнительные сведения о настройке SSL см. в разделе Настройка SSL (Руководство пользователя IIS 6.0) (на английском языке).
См. также
Основные понятия
Общие сведения о службе проверки подлинности Windows Communication Foundation