我有一个 Web 应用程序正在尝试使用委托来检索文件并向其他服务器发出请求。
我已经设置好 Kerberos 并且运行良好(我认为),但委托只在 IE 中工作。
编码
System.Security.Principal.WindowsImpersonationContext impersonationContext;
impersonationContext = ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();
// Do some stuff here
impersonationContext.Undo();
然后我在模拟部分有一些日志记录,看起来像
var identity = System.Security.Principal.WindowsIdentity.GetCurrent();
logger.Debug("ImpersonationLevel: {0}", identity.ImpersonationLevel);
当我从 IE 运行该站点时,ImpersonationLevel = Delegation
该应用程序能够双跳到第二台服务器。
当我从 Chrome 或 MobileIron web@work 浏览器运行时,我得到ImpersonationLevel = Impersonation
并且双跳失败。
MobileIron 部分特别重要,所以我试图弄清楚它是我的问题还是客户端的问题。