¿Cómo verifico si un usuario tiene permiso para leer / escribir una clave de registro en particular?

¿Alguien sabe cómo puedo verificar mediante programación (usando C #) si mi programa podrá leer / escribir una clave de registro particular (específicamente: "SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run")?

Estoy preguntando porque mi programa tiene la opción de habilitar o deshabilitar el comportamiento 'ejecutar al inicio'. Quiero deshabilitar esta opción si el usuario actual no está autorizado a realizar cambios en el registro. ¿Esta clave siempre puede escribirla el usuario actual o existe la posibilidad de que se haya bloqueado? Si este último, ¿cómo puedo comprobar esto?

He visto varias formas conflictivas de verificar los permisos del registro, pero básicamente no puedo encontrar una manera de verificar una clave específica antes de intentar leerla. Prefiero realizar la comprobación antes de acceder a la clave que intentar acceder a ella y recibir una excepción.

Cualquier ayuda es muy apreciada.

Tom