I apologise - I was misled by the MSDN documentation, which says that the UnauthorizedAccessException is thrown when the path argument passed to the method specifies a file that is read-only.
In fact, you CAN issue a ReadAllLines for a read-only file, in spite of the MSDN documentation.