2010-07-18 11 views
5

He creado una aplicación ASP.NET que utiliza la autenticación de formularios. En nuestro panel de control de cuentas de hosting, configuré una tarea automatizada que solicita una página web una vez por semana. Cuando se carga la página, se envían varios correos electrónicos.Averigüe si la solicitud de ASP.NET proviene del equipo local

Me gustaría saber si hay alguna manera de determinar en el código subyacente si la solicitud proviene de la máquina local (como con la autenticación de Windows). No funciona el uso de un archivo web.config por separado en el subdirectorio de la página con el modo de autenticación de Windows.

La aplicación funcionará bien en ambos sentidos. Estoy requiriendo que un valor de Guid específico esté presente en la cadena de consulta, por lo que es muy poco probable que la tarea se ejecute por error. Me gustaría aprender algo nuevo mientras estoy trabajando en esto, y me gustaría ver si puedo agregar este poco de verificación adicional.

Muchas gracias por cualquier consejo.

Respuesta

4
Request.Url.IsLoopback 
+0

Esto comprueba si el sitio está alojado en 'localhost'. No si el cliente está en la misma máquina que el servidor. – CodeAngry

16
Request.IsLocal 

La propiedad IsLocal devuelve verdadero si la dirección IP de la solicitud originador es 127.0.0.1 o si la dirección IP de la solicitud es la misma que la dirección IP del servidor.

+0

¿Esto puede ser falso? –

+0

@AlbertBori vea http://stackoverflow.com/questions/19010217/is-request-islocal-secure-or-can-it-be-spoofed –

+0

No funciona con CDN como cloudflare – jjxtra

Cuestiones relacionadas