繁体   English   中英

asp.net Impersonate用户进行网络资源访问

[英]asp.net Impersonate User for network resource access

码:

System.Security.Principal.WindowsImpersonationContext impersonationContext;
impersonationContext =
    ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();

//access network resources.

impersonationContext.Undo();

web.config中:

<authentication mode="Windows">       
</authentication>
<identity impersonate="true"
userName="user"
password="password"></identity>

从web.config文件中可以清楚地看到,该应用程序以模拟模式运行。 我需要临时模拟访问网络资源。 我这样做如上所示。

如果我浏览到服务器上安装的本地IE上的网站,但是当我从我的PC或任何其他PC访问应用程序时,我在服务器上工作正常,我被拒绝访问。

顺便说一句,这都属于企业域环境。 所以IE在这两种情况下都传递了有效的身份验证令牌。

任何想法是怎么回事。 谢谢。

您需要确保服务器将应用程序中的模拟安全上下文委派给另一台服务器(您提到的网络资源)。

当您登录到服务器时,我很确定它是有效的,因为它使用的是您直接登录的安全上下文,而不是应用程序中存在的模拟上下文。

我不记得有关配置的细节,但我知道它被称为委托或“Kerberos Double Hop”。 “约束委派”是指您配置时只允许一种类型的委派。 IE,您的应用只允许在与其他特定服务器上的Active Directory(端口xyz)通信时委派安全上下文 - 否则不允许。

请参阅了解Kerberos Double Hop

请参阅DelegConfig - 它有助于配置委派。

另请参阅: TechNet文章

并且: 这篇文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM