WindowsIdentity winId = (WindowsIdentity) HttpContext.Current.User.Identity; Как заставить этот актерский состав работать; в настоящее время это терпит неудачу - PullRequest
1 голос
/ 12 июня 2009

Я в основном пытаюсь получить доступ к ресурсам общего ресурса из моего веб-приложения, выдавая себя за зарегистрированного пользователя. Я последовал этому примеру [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

Ответы [ 2 ]

1 голос
/ 12 июня 2009

Что на самом деле в вашем Identity ?? Может быть, это общая или какая-то другая идентификация, а не идентификация Windows, как вы предполагаете:

string typeOfIdentity = HttpContext.Current.User.Identity.GetType().FullName;

Какой результат здесь? Это может дать вам больше информации о том, с чем вы на самом деле имеете дело.

Марк

0 голосов
/ 12 июня 2009

Я не уверен, что вы пытаетесь сделать с подражанием, поэтому трудно точно сказать, как это сделать, но объект User в вашем веб-приложении равнозначно объекту System.Security.Principal.IPrincipal, а не WindowsPrincipal объект.

Аналогично, User.Identity является IIdentity, а не объектом WindowsIdenity.

Можете ли вы написать больше о том, что вы пытаетесь сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...