¿Cómo puede probar mi aplicación C # si el usuario tiene acceso de "Lectura" a un recurso compartido de red?

Trabajo en una aplicación de cliente pesado que a menudo se encuentra con "problemas" al acceder a recursos compartidos de red. Antes de hacer cualquier IO con el servidor, mi aplicación prueba si existe el recurso compartido (generalmente del formulario \\ servidor \ recurso $). Esto funciona bien para detectar aquellos escenarios en los que el cliente ha perdido su conexión con el servidor, pero aún existen esos escenarios extraños donde existe el recurso compartido oculto pero el usuario no tiene los derechos para leer desde dentro del recurso compartido. ¿Alguien puede compartir (sin juego de palabras) el código C # requerido para probar si el usuario actual puede leer archivos en un recurso compartido? ¿Debo consultar la ACL del recurso compartido o los archivos dentro del recurso compartido? ¿Qué pasa si el recurso compartido está vacío? ¿Qué sucede si el usuario no es administrador local en un entorno mixto (estación de trabajo XP Pro, servidor Windows 2003 sin un dominio en una red Novell)?

Respuestas a la pregunta(2)

Su respuesta a la pregunta