Использование ILSpy, вы можете посмотреть на де скомпилированные версии GetCurrent
и GetCurrentInternal
, которые GetCurrent
звонки , Результат:
GetCurrent:
public static WindowsIdentity GetCurrent()
{
return WindowsIdentity.GetCurrentInternal(TokenAccessLevels.MaximumAllowed, false);
}
GetCurrentInternal:
internal static WindowsIdentity GetCurrentInternal(TokenAccessLevels desiredAccess, bool threadOnly)
{
int errorCode = 0;
bool flag;
SafeTokenHandle currentToken = WindowsIdentity.GetCurrentToken(desiredAccess, threadOnly, out flag, out errorCode);
if (currentToken != null && !currentToken.IsInvalid)
{
WindowsIdentity windowsIdentity = new WindowsIdentity();
windowsIdentity.m_safeTokenHandle.Dispose();
windowsIdentity.m_safeTokenHandle = currentToken;
return windowsIdentity;
}
if (threadOnly && !flag)
{
return null;
}
throw new SecurityException(Win32Native.GetMessage(errorCode));
}
Поскольку threadOnly
всегда ложно, когда вы совершаете звонок из GetCurrent
и currentToken
должен быть действительным для другого return, я не думаю, что вы рискуете получить нуль WindowsIdentity
.
хорошо, я гугле это для вас :) Это, кажется, наш маленький друг: http://youtrack.jetbrains.com/issue/RSRP-328266 – Noich
Ровно.Вышеупомянутые аннотации предполагают исправить 328266 (следовательно, комментарий в первой строке фрагмента XML), но по какой-то причине исправление, похоже, не работает. Если это указывает на проблему в настройках или конфигурации R #, пожалуйста, уточните. –
Я действительно понятия не имею :) Вам придется взять это с помощью QA. – Noich