我已经尝试过link from stackoverflow
了我有一个silverlight客户端和wcf服务。该应用程序有3种身份验证模式
private string GetCurrentUser()
{
try
{
string result = WindowsIdentity.GetCurrent().Name;
WindowsPrincipal wp = new WindowsPrincipal(WindowsIdentity.GetCurrent());
result = wp.Identity.Name;
if (result.Contains(@"\"))
{
int position = result.LastIndexOf(@"\") + 1;
result = result.Substring(position);
}
return result;
}
catch (Exception ex)
{
return "";
}
}
WindowsIdentity和WindowsPrincipal都返回'DefaultAppPool'或当前线程运行的AppPool。甚至Environment.UserName也会返回相同的内容。
当我在web.config中打开<identity impersonate ="true"/>
时,silverlight客户端无法连接到wcf。它会出现“未找到”错误。所以,我需要保留<identity impersonate ="false"/>
我所需要的只是当前登录的用户,我不知道这很难。
答案 0 :(得分:0)
我将应用程序池上的标识更改为我自己的用户帐户,但它确实有效。