У меня есть служба WCF, размещенная в IIS, которая требуется для олицетворения учетной записи annon.
в моем Webconfig
<authentication mode="Windows"/>
<identity impersonate ="true"/>
Тестирование следующего, с vs2008
public void ByRuleId(int ruleId)
{
try
{
string user = WindowsIdentity.GetCurrent().Name;
string name = Thread.CurrentPrincipal.Identity.Name;
........
//get the data as a string.
using (FileStream fs = File.Open(location, FileMode.Open))
using (StreamReader reader = new StreamReader(fs))
{
rawData = reader.ReadToEnd();
}
}
catch.....
}
это работает. Однако, если я добавлю атрибут олицетворения
[OperationBehavior(Impersonation=ImpersonationOption.Required)]
public void ByRuleId(int ruleId)
это не работает с сообщением об ошибке
«Либо требуемый уровень олицетворения не был предоставлен, либо предоставленный уровень олицетворения недействителен.»
немного возни, я заметил, что первый способ был аутентифицирован Kerboros, а второй просто не прошел при типе аутентификации
Я использую инструмент клиента WCF, чтобы передать свои учетные данные. похоже, это работает.