如何在我的网络应用程序中获取ICredential对象?
我尝试使用以下代码:
WindowsImpersonationContext securityContext =
Request.LogonUserIdentity.Impersonate();
在最后一行代码之后: CredentialCache.DefaultCredentials和CredentialCache.DefaultNetworkCredentials仍为空。
我知道身份是正确的,因为以下属性显示了我正在使用的正确的域\用户帐户:
Request.LogonUserIdentity.Name
=> “域\用户”
这是该对象的身份验证类型:
Request.LogonUserIdentity.AuthenticationType
=> “NTLM”
答案 0 :(得分:2)
为了获得用户的ICredential实现,您首先需要为用户保留WindowsIdentity(例如通过Page.User.Identity)。使用WindowsIdentity对象,您可以impersonate用户。成功模拟后,您可以通过CredentialCache.DefaultCredentials获取用户的凭据。
现在的问题是,你想用凭证做什么?如果要使用这些凭据访问其他服务器上的某些资源,则可能必须启用Keberos委派以允许服务器跃点。我不知道该怎么做: - )
答案 1 :(得分:0)
你需要它在哪里?
您可以从System.Threading.Thread.CurrentPrincipal.Identity中检索用户名