У меня есть простой веб-сервис, благодаря которому безопасность обрабатывается с помощью проверки подлинности на основе форм.Аутентификация на основе форм на основе WCF через веб-приложение - передача учетных данных
WCFTestService.ServiceClient myService = new
WCFTestService.ServiceClient();
myService.ClientCredentials.UserName.UserName = "user";
myService.ClientCredentials.UserName.Password = "secret";
lblResult.Text = myService.GetData(1231);
myService.Close();
Я получаю доступ к этому через веб-приложение. Поэтому я хочу сделать это выше, но для обеспечения безопасности/производительности не нужно делать это снова. Я думал, что-то вроде ниже, но, как я использую FormsAuthentication это не будет работать ...
//Obtain the authenticated user's Identity and impersonate the original caller
using (((WindowsIdentity)HttpContext.Current.User.Identity).Impersonate())
{
WCFTestService.ServiceClient myService2 = new WCFTestService.ServiceClient();
lblResult.Text = "From Logged On Credentials"+myService2.GetData(1231);
myService2.Close();
}