Почему я не могу декомпилировать System.IdentityModel.Services.dll?

Я пытаюсь декомпилировать System.IdentityModel.Services.dll но ни один из инструментов декомпиляции не показывает детали метода

Я даже не могу получить IL для этих методов в ILDASM. Та же история для ILSpy.

например: System.IdentityModel.Services.SessionAuthenticationModule

ILDASM:

.method family hidebysig newslot virtual 
        instance void  OnAuthenticateRequest(object sender,
                                             class [mscorlib]System.EventArgs eventArgs) cil managed
{
  // Code size       0 (0x0)
} // end of method SessionAuthenticationModule::OnAuthenticateRequest


.method family hidebysig instance class [mscorlib]System.Collections.ObjectModel.ReadOnlyCollection`1<class [mscorlib]System.Security.Claims.ClaimsIdentity> 
        ValidateSessionToken(class [System.IdentityModel]System.IdentityModel.Tokens.SessionSecurityToken sessionSecurityToken) cil managed
{
  // Code size       0 (0x0)
} // end of method SessionAuthenticationModule::ValidateSessionToken

Я думал, по крайней мере, IL всегда был доступен. Разве это не так?

1 ответ

Решение

r# способен находить справочные источники Microsoft, а Reflector способен генерировать:

    protected ReadOnlyCollection<ClaimsIdentity> ValidateSessionToken(SessionSecurityToken sessionSecurityToken)
{
    ReadOnlyCollection<ClaimsIdentity> onlys;
    SessionSecurityTokenHandler handler = base.FederationConfiguration.IdentityConfiguration.SecurityTokenHandlers[typeof(SessionSecurityToken)] as SessionSecurityTokenHandler;
    if (handler == null)
    {
        throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString("ID4011", new object[] { typeof(SessionSecurityToken) })));
    }
    try
    {
        onlys = new ReadOnlyCollection<ClaimsIdentity>(handler.ValidateToken(sessionSecurityToken, this.CookieHandler.Path));
    }
    catch (SecurityTokenExpiredException exception)
    {
        throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FederatedSessionExpiredException(DateTime.UtcNow, sessionSecurityToken.ValidTo, exception));
    }
    catch (SecurityTokenNotYetValidException exception2)
    {
        throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FederationException(SR.GetString("ID1071", new object[] { DateTime.UtcNow, sessionSecurityToken.ValidFrom }), exception2));
    }
    return onlys;
}

ILSpy генерирует очень похожий код. Поэтому я думаю, что вы смотрите на неправильную сборку или упускаете что-то еще.

Другие вопросы по тегам