코드를 확인하는 과정을 건너뛸 수 있도록 관리자가 보안 정책을 설정하지 않은 경우에는 MSIL을 네이티브 코드로 컴파일하는 과정의 하나로서 MSIL 코드가 확인 프로세스를 통과해야 합니다. 확인 과정에서는 코드가 형식이 안전한지 파악하기 위해 MSIL 및 메타데이터를 검사합니다. 이 경우 액세스 권한이 있는 메모리 위치에만 액세스합니다. 형식 안정성은 개체를 서로 격리하여 실수에 의한 손상 또는 악의적인 손상으로부터 보호합니다. 형식 안정성은 코드의 보안 제한을 확실히 실행할 수 있도록 보장하기도 합니다.
런타임은 형식이 안전한지 확인된 코드의 경우 다음 문장이 참이라는 사실을 기반으로 합니다.
확인 프로세스 동안 MSIL 코드를 검사하여 코드에서 메모리 위치에 액세스할 수 있는지 그리고 제대로 정의된 형식을 통해서만 메서드를 호출하는지를 확인합니다. 예를 들어, 코드에서는 메모리 위치에 대한 오버런을 허용하는 방식으로 개체의 필드에 대한 액세스를 허용할 수 없습니다. 그리고 잘못된 MSIL로 인해 형식 안전성 규칙이 위반될 수 있기 때문에 확인 프로세스에서는 코드를 검사하여 MSIL이 제대로 생성되었는지 확인합니다. 확인 프로세스에서는 제대로 정의된 형식이 안전한 코드 집합만 통과시키며 형식이 안전한 코드만 전달합니다. 그러나 일부 형식이 안전한 코드는 확인 프로세스의 특정 제한 때문에 확인 과정을 통과하지 못할 수 있습니다. 그리고 일부 언어에서는 검증된 형식이 안전한 코드를 생성하지 못하도록 디자인되어 있습니다. 보안 정책에서 형식이 안전한 코드를 요구하는데 코드가 확인 과정을 통과하지 못하면 코드가 실행될 때 예외가 throw됩니다.