Я хотел реализовать процедуры проверки подлинности и авторизации форм ASP.NET для своих приложений Windows Forms или WPF, взаимодействующих с веб-сайтом ASP.NET WCF (и SOAP) Сервисы.Реализация аутентификации и авторизации форм ASP.NET для Windows Forms или автономного приложения WPF
Использование Fiddler Я исследовал, как Silverlight использует свой веб-сервис WCF RIA Services во время процедур входа/выхода, и, насколько я вижу, это сообщение - это всего лишь набор вызовов POST и GET HTTP.
Насколько я понимаю, фактическая аутентификация и авторизация происходит на стороне службы WCF через провайдеры членства и ролей ASP.NET - я знаю, как обращаться с этим кодом.
То, что я не знаю точно, это то, что может быть самым высоким уровнем набора классов System.Net и их методов для реализации аутентификации и авторизации форм ASP.NET между приложением WinForms/WPF и ASP.NET WCF (и, если возможно, SOAP) Web-сервис, с сеансом связи, который поддерживался после входа в систему, при этом cookie-приложения ASP.NET/приложения передавались здесь и там как можно более прозрачно для меня (IOW без слишком низкого уровня C#/.NET Framework программирование). Будет ли System.Net.WebClient быть достаточно хорошим для выполнения моей задачи? Знаете ли вы, что готовы использовать простые решения с открытым исходным кодом C#?
Благодарим вас за ответ. Если я получил его правильно, вы «заимствовали» файлы cookie для проверки подлинности ASP.NET Forms в приложении ClickOnce из входа в систему для пользователя сайта ASP.NET? И моя задача - * напрямую войти в систему * из приложения WinForms/WPF в веб-службу ASP.NET WCF/SOAP и поддерживать это подключенное к сети соединение (как можно проще с автоматическим потоком аутентификации cookie здесь и там), в то время как WinForms/Приложение WPF взаимодействует с веб-службой через экземпляр System.Net.WebClient. Полагаю, это возможно. Посмотрите, как файлы cookie создаются при входе в систему. Http://tinyurl.com/pwlpdq3 – ShamilS
@ShamilS: Еще раз, вы можете иметь метод в своей службе, который берет что-либо у пользователя и выдает cookie. Таким образом, вы напрямую заходите из winforms-приложения в службу wcf. Кроме того, забудьте о веб-клиенте, вместо этого используйте служебные прокси или, по крайней мере, ChannelFactory. Это сэкономит вам много сил. –
Благодарим вас за дополнительную заметку. Было бы правильно, если бы я рассматривал это так, как вы говорите, что если я использую служебный прокси (/ ChannelFactory) вместо System.Net.WebClient, и у меня будут, скажем, вход, метод GetReport и Logout для моего веб-сервиса, где Login будет выдавать FormsAuthentication.SetAuthCookie (имя пользователя, false) [с именем пользователя/паролем, подтвержденным до этого вызова], GetReport будет использовать - if (Thread.CurrentPrincipal.Identity.IsAuthenticated) {... и файлы cookie, созданные в Login, будут автоматически протекать между сервер и клиент до выключения веб-звонка сбрасывает файлы cookie с помощью FormsAuthentication.SignOut()? – ShamilS