Cómo utiliza asp.net el almacenamiento en caché
Cómo configurar la caché del cliente del navegador para asp.net 1. Tiempo de caducidad: tiempo de caducidad
Esto significa que el caché del navegador falla después del tiempo especificado. Cabe señalar que la hora de vencimiento aquí debe ser una fecha y hora en formato HTTP, el resto se interpretará como "antes" de la hora actual. La caché caducará inmediatamente y la fecha y hora en HTTP deben ser la hora media de Greenwich (GMT) y no la hora local. Ejemplo:
El uso de Expires para caducar debe requerir que la hora del servidor sea correcta; de lo contrario, los dos o más túneles enviados se conectarán de extremo a extremo en secuencia, sin bifurcación en el medio de la red de ventilación.
Una red en la que se conectan múltiples rutas de viento en secuencia.
Seriesventilationnet es una red de ventilación en la que se conectan dos o más carriles de extremo a extremo en secuencia sin ramales en el medio. La resistencia total al viento de la red de ventilación en serie es grande, los orificios de nivel son pequeños y la ventilación es difícil, el volumen de aire en cada túnel de la red no se puede ajustar y el humo de las armas y el polvo mineral generados por la superficie de trabajo frontal pueden; Afectan directamente a la superficie de trabajo trasera, dificultando el control de un incendio. Se debe evitar en la medida de lo posible el uso de redes de ventilación en serie; de lo contrario, se deben tomar las medidas correspondientes.
¿Cuáles son las características y diferencias de los cuatro lenguajes ASP, ASP.NET, PHP y JSP?
ASP, el nombre completo es ActiveServerPages
ASP es un lenguaje de scripting en segundo plano desarrollado por Microsoft. Su sintaxis es similar a VisualBASIC y puede integrar scripts en segundo plano como SSI (ServerSideInclude). El código del script está incrustado en la página HTML. Aunque ASP es simple y fácil de usar, tiene muchos defectos, el más importante de los cuales son los problemas de seguridad. El ASP.net recientemente lanzado en la estrategia .net de Microsoft aprovecha las ventajas de la tecnología Java y utiliza el lenguaje CSharp (C#) como lenguaje recomendado para ASP.net. También mejora las deficiencias del ASP anterior, como la mala seguridad. Sin embargo, todavía existen ciertas limitaciones en el uso de ASP/ASP.net, porque desde cierta perspectiva sólo pueden funcionar bien en la plataforma de servidor WindowsNT/2000/XP+IIS de Microsoft (aunque ChilliSoft proporciona servicios en UNIX/Existe una solución para ejecutar ASP en Linux, pero se puede decir que la aplicación actual de ASP en UNIX/Linux es casi nula). Por lo tanto, las limitaciones de la plataforma y la seguridad del propio ASP limitan la amplia aplicación de ASP.
Cuando se ejecuta ASP, IIS llama al motor del programa para interpretar y ejecutar el código ASP incrustado en HTML, y finalmente envía el resultado al cliente junto con el HTML original.
PHP, el nombre completo es PHP:HypertextPreprocessor
El nombre completo de PHP es muy interesante, es una abreviatura anidada: "PHP:HypertextPreprocessor", abra la abreviatura o abreviatura . PHP es un lenguaje integrado HTML (al igual que ASP mencionado anteriormente). La sintaxis única de PHP combina C, Java, Perl y una nueva sintaxis de estilo PHP. Puede ejecutar páginas web dinámicas más rápido que CGI o Perl.
El código fuente de PHP está completamente abierto al público. Hoy en día, con el aumento de la conciencia OpenSource, es el pilar en este sentido. Constantemente se agregan y actualizan nuevas bibliotecas de funciones, lo que permite que PHP tenga más funciones nuevas en las plataformas UNIX y Win32. Proporciona funciones ricas, lo que lo convierte en un mejor recurso para la programación. La última versión de PHP es 4.1.1, que puede funcionar bien en casi todas las plataformas como Win32 y UNIX/Linux. PHP utiliza el nuevo motor Zend después de la versión 4.0. Su eficiencia después de la optimización es mejor que la tradicional CGI o ASP y otras tecnologías.
La independencia de plataforma es la mayor ventaja de PHP, pero detrás de las ventajas, todavía hay algunas pequeñas desventajas.
Si no usa ODBC en PHP, pero usa sus propias funciones de base de datos (que son más eficientes que usar ODBC) para conectarse a la base de datos, los nombres de las funciones de PHP no se pueden unificar cuando se usan diferentes bases de datos. De esta forma, el trasplante del programa se vuelve algo problemático. Sin embargo, como lenguaje de fondo más utilizado en la actualidad, las ventajas de PHP siguen siendo extremadamente obvias.
JSP, el nombre completo es JavaServerPages/Servlet
JSP y Servlet deben discutirse juntos porque ambos son parte del sistema de aplicaciones J2EE (Java2platformEnterpriseEdition) de Sun.
La forma del Servlet es similar al CGI mencionado anteriormente. Está separado del código HTML y del programa en segundo plano. Sus principios de inicio son similares: el servidor responde después de recibir la solicitud del cliente. La diferencia es que CGI abre un proceso (Proceso) para cada solicitud del cliente, pero el Servlet se carga en respuesta a la primera solicitud. Una vez que se carga el Servlet, está en estado ejecutado. Para futuras solicitudes de otros usuarios, no abre un proceso, sino que abre un hilo (Thread) y envía los resultados al cliente. Dado que los subprocesos pueden compartir recursos generando sus propios subprocesos principales (ParentThread), lo que reduce la carga en el servidor, JavaServlet se puede utilizar para proporcionar servicios de aplicaciones a gran escala.
Aunque JSP se parece mucho a ASP o PHP en su forma, ambos pueden integrarse en código HTML. Sin embargo, su funcionamiento es completamente diferente al de ASP o PHP. Cuando se ejecuta JSP, el intérprete JSP (JSPParser) convierte el archivo JSP en código Servlet y luego el compilador Java compila el código Servlet en un archivo de bytes .class, de modo que el Servlet generado responda al cliente. Por lo tanto, JSP puede considerarse como la versión en lenguaje de script (ScriptLanguage) de Servlet.
Dado que JSP/Servlet están todos basados en Java, también tienen la mayor ventaja del lenguaje Java: la independencia de plataforma, que es el llamado "Escribir una vez, ejecutar en cualquier lugar (WORA_WriteOnce, RunAnywhere)". Además de esta ventaja, la eficiencia y seguridad de JSP/Servlet también son bastante sorprendentes. Por lo tanto, aunque JSP/Servlet no se utiliza mucho en China, su futuro es ilimitado.
Al depurar código JSP, si se produce un error en el programa, el servidor JSP devolverá información de error y la mostrará en el navegador. En este momento, dado que JSP primero se convierte en un servlet y luego se ejecuta, el número de líneas con el código de error que se muestra en el navegador no es el número de líneas del código fuente JSP, sino el número de líneas del programa Servlet convertido. código. Esto dificulta un poco la depuración del código. Por lo tanto, al solucionar errores, puede adoptar un método de eliminación segmentada (generar algunas cadenas antes y después del código que puede causar errores, y usar si las cadenas se generan para determinar dónde comienza a fallar el segmento de código) y reducir gradualmente el alcance del segmento del código de error. Finalice la ubicación del código de error.
Comparación entre JSP y ASP:
velocidad de ejecución, gastos generales de ejecución, plataforma de ejecución, escalabilidad, seguridad, soporte de funciones, soporte de proveedores, soporte XML, etc., ASP lo tiene todo No es un rival de JSP. La complejidad de los componentes COM dificulta la implementación de la programación. La combinación de JAVABeans y JAVA es perfecta.
Comparación entre JSP y ASP.NET:
1. En comparación con C#, el lenguaje de scripting de JSP, JAVA, también es un lenguaje interpretado, distribuido y orientado a objetos.
2. Al igual que C#, JAVA también elimina conceptos difíciles de entender, como punteros, y los reemplaza con clases y objetos.
3.JSP tiene una tecnología completamente nueva: Servlet (programa del lado del servidor), que ahorra muy bien los recursos del servidor.
4. JAVABeans es una tecnología para ServerControl de ASP.NET.
Siempre que conozca JAVA, JavaBeans es fácil de escribir.
5. Luego está la tecnología de conexión de bases de datos JDBC de JAVA.
6. JSP también tiene un soporte muy amplio para XML.
1) Orientado a objetos:
ASP+ utiliza C# como lenguaje orientado a objetos. En muchos sentidos, C# se convertirá en el lenguaje de Microsoft similar a Java.
Otra cosa interesante de C# es que todos los objetos se convierten automáticamente en objetos COM. Si C# puede ganar una participación de mercado significativa, traerá una funcionalidad similar a Java a ASP+ con un rendimiento más rápido porque puede integrarse estrechamente con el entorno Windows.
C# es una de las funciones más importantes en el desarrollo de ASP+, y Microsoft convertirá C# en un fuerte rival de Java. Esta también es una parte importante de su marco .Net. Creo que C# es la principal herramienta de Microsoft para vencer a sus rivales en el mercado de la programación. Espero que Microsoft ponga todos sus esfuerzos en este producto para que C# pueda convertirse en otra opción para muchos programadores. El resultado de C# es fortalecer aún más las líneas de productos de Microsoft y Sun. Esto resulta beneficioso para los usuarios, que pueden elegir uno de los dos para desarrollar nuevas aplicaciones.
2) Conexión a bases de datos:
Otro punto a destacar de ASP es su uso de objetos ADO, ODBC, OLE-DB y gestores de procesamiento de transacciones. Por lo tanto, el desarrollo de aplicaciones de bases de datos ASPWeb es particularmente sencillo. ¡ASP+ ha desarrollado más funciones gracias a ADO+! ADO+ trae funciones más potentes y rápidas. JSP y JDBC actualmente están por detrás de ASP/ADO en términos de facilidad de uso y rendimiento. Esta diferencia será más obvia cuando aparezca la nueva versión ASP+/ADO+. Personalmente espero que SUN haga grandes esfuerzos para ponerse al día con la combinación ASP+/ADO+ lo antes posible.
3) Aplicaciones de sitios grandes:
ASP+ tendrá mejor soporte para sitios grandes (webfarms). De hecho, Microsoft ha hecho grandes esfuerzos en este sentido. ASP+ le permite considerar varios servidores. Cuando necesite funciones más potentes, solo necesita agregar un servidor. Todo el marco .Net ha proporcionado completamente este método. ASP+ proporciona un estado de sesión externo (externalsessionstate) para proporcionar soporte integrado para webfarm. Además, es muy rápido porque los distintos componentes de la solicitud están completamente optimizados entre sí.
Así que ASP+ ahora puede tener las mismas capacidades que JSP en proyectos grandes. ASP+ también tiene una ventaja de precio porque todos los componentes formarán parte del sistema operativo del servidor. Para JSP, es necesario adquirir costosas granjas de servidores de aplicaciones para lograr el mismo propósito.
4) ASP+ también proporciona más funciones nuevas en otros aspectos, como:
*Almacenamiento en caché de objetos integrado y almacenamiento en caché de resultados de páginas.
* Soporte XML integrado para un procesamiento sencillo de conjuntos de datos XML.
* El control del servidor proporciona un control interactivo más completo.
ASP+ de hecho ha logrado grandes avances en ASP.
¿Qué incluye principalmente NET.Framework? ¿Con más detalle?
Es un software de desarrollo de lenguajes
NET Framework admite COM+ y MTS a través de la tecnología COMInterop (COM interop). Una aplicación COM tradicional puede llamar a un componente .NET, y un componente .NET (llamado .NETAssembly en .NET) también puede llamar a un componente COM. Esta característica de interoperabilidad bidireccional extremadamente poderosa le permite combinar ambas tecnologías en su aplicación.
NET Framework es el resultado de los esfuerzos conjuntos de varios equipos de desarrollo de Microsoft. Se utiliza principalmente para producir una plataforma de desarrollo que se puede utilizar para desarrollar e implementar rápidamente servicios y aplicaciones de sitios web. Esta arquitectura es el resultado de dos proyectos: el primer proyecto está diseñado para mejorar el desarrollo de programas en la plataforma operativa Windows, especialmente para mejorar COM (ComponentObjectModel, Component Object Module.
Una tecnología de software desarrollada por Microsoft que permite que las funciones de los objetos sean llamadas por otro software, permitiendo que los componentes sean reutilizados, fáciles de actualizar y mantener; el segundo proyecto es crear un software con el objetivo de desarrollar un servicio (Servicio); plataforma. Los dos equipos del proyecto han estado trabajando juntos hace más de tres años y esperan desarrollar una plataforma de desarrollo que pueda desarrollarse rápidamente en Internet y que sea fácil de aprender y usar.
Problemas de seguridad actuales
En el entorno de software actual, las aplicaciones provienen de muchas fuentes y realizan muchas tareas. La confianza en el código de la aplicación es una necesidad importante porque ninguno de nosotros quiere que el software o la información se vean comprometidos. Una política de seguridad que otorgue permiso no permitirá el acceso inapropiado a información confidencial ni expondrá la máquina local a programas maliciosos o incluso a códigos con errores mundanos.
En el pasado, las arquitecturas de seguridad proporcionaban aislamiento y control de acceso basados en cuentas de usuario, dando al código acceso completo dentro de esos límites y asumiendo el mismo nivel de confianza que el código ejecutable por un usuario específico. Desafortunadamente, si todos los programas se ejecutan en nombre de un usuario, aislar el código por usuario no es suficiente para proteger un programa contra el uso de otros usuarios. Alternativamente, el código en el que no se puede confiar plenamente a menudo se traslada a un modelo de "zona de pruebas", donde el código se ejecuta en un entorno aislado sin acceso a la mayoría de los servicios.
Las soluciones de seguridad exitosas para las aplicaciones actuales deben imponer un equilibrio entre los dos modelos de seguridad. Debe proporcionar acceso a los recursos para completar un trabajo útil y requiere un control cuidadoso sobre la seguridad de las aplicaciones para garantizar que el código se identifique, detecte y reciba el nivel adecuado de seguridad. .NET Framework proporciona dicho modelo de seguridad.
Solución de seguridad Microsoft.NETFramework
La solución de seguridad .NETFramework se basa en el concepto de código administrado y reglas de seguridad aplicadas por Common Language Runtime (CLR). Gran parte del código de gestión debe verificarse para garantizar la seguridad de tipos y el comportamiento de otras propiedades predefinidas. Por ejemplo, en el código verificado, un acceso declarado para recibir un valor de 4 bytes rechazaría una llamada que proporcionara un parámetro de 8 bytes por no ser de tipo seguro. El proceso de verificación también garantiza que el flujo de ejecución solo se dirija a ubicaciones conocidas, como puntos de entrada de métodos; este proceso elimina la capacidad de saltar a ubicaciones de ejecución arbitrarias.
La validación evitará que se ejecute código que no sea seguro para tipos, detectando muchos errores de programación comunes antes de que causen daños. Las vulnerabilidades comunes, como desbordamientos de búfer, lecturas de memoria arbitraria o no inicializada y transferencias aleatorias de controles, ya no son posibles. Esto beneficiará a los usuarios finales ya que se verificará el código antes de ejecutarlo. Esto también beneficia a los desarrolladores, quienes descubrirán que muchos errores comunes (que han afectado a desarrolladores anteriores en el pasado) ahora pueden identificarse y evitar que causen estragos.
CLR también permite la ejecución de código no administrado, pero el código no administrado no puede beneficiarse de estas medidas de seguridad. Los permisos especiales están asociados con la capacidad de llamar a código no administrado y una política de seguridad sólida puede garantizar que estos permisos se otorguen de manera adecuada. Con el tiempo, la migración de código no administrado a código administrado reducirá la frecuencia de las llamadas a código no administrado.
Componentes del mecanismo de seguridad de Microsoft .NET Framework
Seguridad basada en evidencia
.NET Framework introduce el concepto de "seguridad basada en evidencia". En esencia, es una respuesta a la pregunta sobre la exposición de las políticas de seguridad:
· ¿De qué sitio surgió la combinación?
Las composiciones son los componentes básicos de las aplicaciones .NET Framework. Forman la unidad básica de implementación, control de versiones, reutilización, alcance de activación y autenticación de seguridad. La combinación de aplicaciones se descarga al cliente desde el sitio web.
·¿De qué URL se obtiene la combinación?
La política de seguridad requiere una dirección explícita desde la que se descarga la combinación.
·¿De qué distrito surgió la combinación?
Las zonas se basan en la ubicación del código y están descritas por estándares de seguridad como Internet, intranet, local, etc.
·¿Cuál es el nombre fuerte del grupo?
Un nombre seguro es un identificador reforzado con contraseña proporcionado por el creador de la combinación.
Aunque no proporciona ninguna prueba del creador, identifica de forma única la combinación, asegurando que la combinación no se ha visto comprometida.
Con base en las respuestas a estas preguntas y otras evidencias, la política de seguridad puede calcular los permisos apropiados para otorgar la combinación. Se pueden obtener pruebas de una variedad de fuentes, incluido CLR, navegadores, Microsoft ASP.NET y shells, según la fuente del código.
Modelo de confianza basado en políticas que utiliza evidencia de código
Cuando una combinación se llama a la memoria, el sistema de políticas CLR determina qué permisos se otorgan a la combinación. Luego, el sistema de políticas CLR otorga a la combinación un conjunto de permisos basados en la evidencia evaluada y la solicitud de permiso realizada por la combinación. Solo después de que a la combinación se le otorga un conjunto mínimo de permisos, o la combinación no requiere ningún permiso, el creador de la combinación puede saber que la combinación está funcionando correctamente. Estos requisitos adicionales se pueden comunicar al sistema de políticas de habitaciones mediante una o más solicitudes de permisos específicos.
Dependiendo del tipo de solicitud de permiso, el sistema de políticas puede restringir aún más los permisos otorgados a la combinación (eliminando permisos innecesarios) o incluso negar la carga de la combinación en la memoria (si se cumplen los permisos mínimos necesarios para ejecutar la combinación). no están concedidos por la póliza). A una composición nunca se le otorgan más permisos de los que el sistema de políticas otorgaría en ausencia de solicitudes de permiso; las solicitudes solo limitan aún más los permisos otorgados.
Una política de seguridad contiene una serie de grupos de códigos que contienen permisos que deben otorgarse en función de la evidencia. Las licencias descritas por grupos de códigos se pueden proporcionar a combinaciones obtenidas de una zona de seguridad específica, a combinaciones firmadas por un editor específico, etc. Aunque con el CLR se incluye un conjunto predeterminado de grupos de códigos (y permisos asociados), los administradores pueden configurar el CLR de forma segura para satisfacer sus necesidades particulares. Recuerde, al definir el grupo de códigos asociado con la evidencia, cualquier cosa se puede enviar como evidencia siempre que la política de seguridad pueda utilizarla.
El proceso de creación de una licencia implica una evaluación de la evidencia para determinar a qué nivel se aplica el grupo de códigos: empresa, máquina y usuario. La política evalúa estos tres niveles en el orden anterior y crea una configuración de permiso que entrelaza los tres niveles. Los administradores pueden marcar cualquier nivel de política como final, lo que debería impedir una evaluación adicional de la política en otros niveles. Por ejemplo, un administrador puede finalizar una política en una combinación a nivel de máquina, lo que impide que se apliquen políticas a nivel de usuario a esa combinación.
Una vez completada la política, se crean las configuraciones iniciales para los permisos. Una composición puede optimizar estos permisos realizando solicitudes específicas desde tres aspectos:
·El primer aspecto es especificar la configuración mínima de permisos que debe tener para que la composición se ejecute. Si no se otorgan estos permisos, la combinación se cargará en la memoria de manera diferente y se generará una excepción.
·En segundo lugar, se puede especificar un conjunto opcional de permisos. Aunque la composición espera que estos permisos estén presentes, aún puede cargarse en la memoria si no se pueden obtener estos permisos.
·Finalmente, a las combinaciones particularmente bien comportadas se les negarán permisos riesgosos que no necesitan. Estas tres opciones de optimización se implementan como declaraciones de declaración cuando se llaman.
En tiempo de ejecución, los permisos se calculan en función de la ejecución del código. El diagrama de la derecha resume la secuencia en la que ocurre este proceso. La combinación A3 proporciona su evidencia y evidencia del anfitrión al evaluador de políticas. El evaluador de políticas también considera las solicitudes de licencia de la combinación "G3" al crear licencias. La combinación A3 se denomina combinación A2, que a su vez se denomina combinación A1. Cuando la combinación A3 realiza una operación que desencadena una verificación de seguridad, los permisos obtenidos por A2 y A1 también se verifican para garantizar que tengan los permisos solicitados por A3. En este proceso, llamado recorrido de pila, se verifican los permisos de cada combinación en la pila para determinar si el conjunto de permisos dado contiene los permisos requeridos por la verificación de seguridad. La llamada tendrá éxito si a cada combinación de la pila se le otorgan los permisos requeridos por el control de seguridad. Si a alguna combinación no se le otorgan los permisos requeridos, el proceso de recorrido de la pila falla y se generará una excepción de seguridad.
Algunas actividades de seguridad "gratuitas" llamadas por NETFramework, como leer y escribir archivos, mostrar cuadros de diálogo y leer y escribir variables de entorno, se pueden implementar a través de los métodos .NETFramework incluidos en la arquitectura de seguridad del marco.
Esto permite que .NET Framework permita o no permita una operación basada en la política de seguridad sin necesidad de que el programador realice trabajo adicional. Aunque los creadores de clases de administración que exponen recursos protegidos establecen requisitos de seguridad explícitos en sus bibliotecas, los desarrolladores que utilizan bibliotecas de clases de .NET Framework para acceder a recursos protegidos son libres de explotar el código que accede al sistema de seguridad; no tienen que establecer requisitos de seguridad explícitos. llamar.
Los administradores pueden optimizar las políticas de seguridad decidiendo qué permisos otorgar y luego confiar en .NET Framework para manejar todas las operaciones de seguridad. La seguridad del acceso al código puede prevenir la mayoría de los ataques maliciosos y la verificación del código reduce los desbordamientos del búfer y otros comportamientos indeseables que pueden provocar ataques de seguridad. Como resultado, las aplicaciones y los componentes están inherentemente protegidos de la mayoría de los problemas de seguridad que afectan a las implementaciones de código nativo.
Seguridad basada en roles
A veces es apropiado tomar decisiones de autenticación basadas en la identidad autenticada o en función del rol asociado al contexto de ejecución del código. Por ejemplo, el software financiero y empresarial puede mejorar las políticas a través de una lógica empresarial que evalúa la información de los roles. Los datos sobre transacciones financieras se pueden restringir según el rol del usuario que realiza la solicitud. Los cajeros pueden manejar solicitudes hasta una determinada cantidad, y todo trabajo que supere esa cantidad requiere la función de supervisor.
Las identidades se pueden asignar a los usuarios que han iniciado sesión en el sistema o pueden ser definidas por la aplicación. Los principios correspondientes encapsulan la identidad y otra información de rol relevante (por ejemplo, entre otros, "grupos" de usuarios definidos por el sistema operativo).
Autenticación y Autorización
La autenticación es un proceso que recibe un certificado de un usuario y confirma la autorización del certificado. Si el certificado es válido, entonces el usuario puede decir que tiene una identidad autenticada. El proceso de autorización consiste en determinar si el usuario autenticado puede acceder a un recurso determinado. La autenticación se puede realizar a través de la lógica empresarial o del sistema, o se obtiene a través de alguna API. La API de autenticación es totalmente extensible para que los desarrolladores puedan utilizar su propia lógica empresarial según sea necesario. Los desarrolladores pueden codificar sus requisitos de autenticación y modificar los métodos de autenticación subyacentes sin realizar cambios importantes en su código. Además de la autenticación del sistema operativo Microsoft Windows®, los métodos de autenticación incluyen HTTP básico, Digest y Kerberos, así como autenticación basada en Microsoft Passport y formularios. Estos métodos de autenticación están completamente integrados en ASP.NET.
En la autenticación de formularios ASP.NET, el usuario proporciona el certificado y envía el formulario. Si la aplicación autentica la solicitud, el sistema envía una cookie que contiene el certificado de alguna forma o contiene una palabra clave para recuperar la identidad. Las solicitudes posteriores se envían con la cookie en el encabezado y el controlador ASP.NET autentica y autoriza estas solicitudes mediante cualquier método válido esperado por la aplicación. Si la solicitud no está autenticada, se utilizará el cliente HTTP para enviar la solicitud a un formulario de autenticación, donde el usuario puede proporcionar un certificado de confianza. La autenticación de formularios a veces se utiliza para la personalización, adaptando el contenido a usuarios conocidos. En algunos casos, la cuestión es la identidad más que la autenticación, por lo que la información personalizada del usuario se puede obtener simplemente accediendo al usuario o.
El propósito de la autorización es determinar si la identidad que realiza la solicitud tiene acceso a un recurso determinado. ASP.NET proporciona dos tipos de servicios de autorización: autorización de archivos y autorización de URL. La autorización de archivos determina qué lista de control de acceso utiliza el usuario según el método vigente y la identidad que realiza la solicitud. La autorización de URL es la asignación lógica entre espacios de nombres de URI y diferentes usuarios o roles.
Almacenamiento aislado
.NET Framework proporciona una característica especial, Almacenamiento aislado, para almacenar datos incluso cuando no se permite el acceso al archivo, por ejemplo, cuando se accede al archivo desde Internet. Descargué un control administrativo y lo ejecuté, otorgándole permisos limitados pero sin poder para leer o escribir archivos.
El almacenamiento aislado es un nuevo conjunto de tipos y métodos de almacenamiento local admitidos por .NET. En esencia, cada combinación tiene acceso a un segmento de espacio de almacenamiento aislado en el disco. No permite el acceso a otros datos, y el almacenamiento aislado sólo es válido para la combinación creada para ello.
Las aplicaciones también pueden utilizar el almacenamiento aislado para mantener un registro de actividad, guardar configuraciones o guardar datos de estado en el disco para uso futuro. Dado que la ubicación del almacenamiento en cuarentena está predeterminada, el almacenamiento en cuarentena proporciona una manera conveniente de especificar un espacio de almacenamiento único sin tener que decidir una ruta de archivo.
El código obtenido de la LAN corporativa local tiene restricciones similares, pero menores, y puede acceder a grandes cuotas de almacenamiento aislado. Finalmente, el código proveniente de zonas de sitios restringidos (sitios que no son de confianza) no tiene acceso al almacenamiento en cuarentena.
Cifrado
.NET Framework proporciona un conjunto de objetos de cifrado que admiten algoritmos de cifrado, firmas digitales, hash y generación de números aleatorios, que se implementan mediante algoritmos conocidos, como RSA, DSA, Rijndael/AES, TripleDES, DES y RC2, así como algoritmos hash MD5, SHA1, SHA-256, SHA-384 y SHA-512. También admite especificaciones de firma digital XML desarrolladas en IETF y W3C. .NET Framework admite servicios internos que utilizan objetos criptográficos. Estos objetos también se proporcionan como código administrativo a los desarrolladores que requieren soporte criptográfico.
¿Cómo especificar la seguridad?
Si desea modificar el comportamiento del tiempo de ejecución combinado, puede realizar modificaciones de seguridad declarativa o seguridad forzada según las necesidades del programador.
Seguridad declarativa
La seguridad declarativa permite a los programadores especificar los requisitos de seguridad para una composición directamente en los metadatos del código de composición. Las solicitudes de permiso y todas las demás formas de seguridad declarativa se especifican en el código como propiedades de configuración. Las anotaciones para clases, propiedades y métodos se utilizan para optimizar las licencias. Por ejemplo, la persona que llama a una clase puede utilizar la seguridad declarativa para comprobar si está firmada por un comerciante conocido o si tiene un nombre seguro específico antes de llamar a un método.
Debido a que los atributos declarados son parte de los metadatos de la composición, los requisitos de seguridad de la composición son fáciles de discernir. Se pueden utilizar herramientas para escanear la combinación y descubrir qué métodos requieren ciertos permisos y qué métodos afirman ciertos permisos.
Cuando la actividad y los permisos solicitados se conocen en el momento de la compilación, la verificación declarativa puede ser una de las soluciones preferidas. Por ejemplo, si el método siempre comprueba el permiso de acceso de escritura en C:temp, entonces la verificación de permisos se beneficiará de la declaración. Por otro lado, si cambia la ubicación a la que se solicita el acceso, entonces la seguridad forzada puede ser una mejor solución.
Seguridad forzada
La seguridad forzada se implementa directamente en el código. Programador