我基本上试图通过模拟登录用户从我的Web应用程序访问网络共享资源。我按照这个例子[http://msdn.microsoft.com/en-us/library/ms998351.aspx#paght000023_impersonatingbyusingwindowsidentity],这里作者没有提到演员失败。当我做了那个演员表时,我得到了无法制作演员表的运行时异常。以前有人经历过这类问题吗?
非常感谢指导或建议!
谢谢
WindowsIdentity winId = (WindowsIdentity)HttpContext.Current.User.Identity;
WindowsImpersonationContext ctx = null;
try
{
// Start impersonating
ctx = winId.Impersonate();
// Now impersonating
// Access resources using the identity of the authenticated user
}
// Prevent exceptions from propagating
catch
{
}
finally
{
// Revert impersonation
if (ctx != null)
ctx.Undo();
}
// Back to running under the default ASP.NET process identity
答案 0 :(得分:1)
你的Identity
真的是什么?也许它是一个通用的身份或其他身份 - 而不是你认为的Windows身份:
string typeOfIdentity = HttpContext.Current.User.Identity.GetType().FullName;
结果是什么?这可能会为您提供更多关于您在这里处理的内容的信息。
马克
答案 1 :(得分:0)
我不确定你是怎么做模仿的,所以很难 告诉你究竟该怎么做,但你的网络应用程序中的用户对象是 等于System.Security.Principal.IPrincipal对象而不是 WindowsPrincipal对象。
同样,User.Identity是一个IIdentity而不是WindowsIdenity对象。
你能发布更多关于你想要做的事情吗?