with net mvc microsoft google customizing asp asp.net login asp.net-membership

asp.net - mvc - microsoft asp net identity



Redirigir al usuario a las páginas de inicio de sesión de Mulitple utilizando la membresía ASP.NET (1)

Redirija al usuario a la página de inicio de sesión en función de la carpeta en la que se encuentre. Tengo una aplicación web con el directorio raíz que utilizan todos los usuarios y el sitio de administración.

Para las personas que requerirían la funcionalidad autenticada del sitio, necesitarían iniciar sesión y ser redirigidos a root / login.aspx. Sin embargo, cuando un administrador necesita iniciar sesión en la raíz / admin / sección del sitio, quiero que sean redirigidos al formulario de inicio de sesión en root / admin / login.aspx

<configuration> <appSettings/> <connectionStrings/> <system.web> <authorization> <deny users="?" /> </authorization> </system.web> </configuration>

Tengo este archivo en el directorio raíz / admin. He intentado agregar la siguiente línea, pero está dando un error.

<authentication> <forms defaultUrl="default.aspx" loginUrl="default.aspx"></forms> </authentication>

Básicamente, estoy tratando de sobrescribir el defaulturl y loginurl que existe en la aplicación principal.


Necesita usar el elemento <location> en su web.config. Puede usar la etiqueta <location> para aplicar configuraciones de autorización a un archivo o directorio individual.

<location path="/root"> <system.web> <authentication mode="Forms" > <forms name="LoginForm" defaultUrl="default.aspx" loginUrl="/root/login.aspx" protection="Encryption" timeout="30" path="/"/> </authentication> <authorization> <allow users="?" /> </authorization> </system.web> </location> <location path="/root/admin"> <system.web> <authentication mode="Forms" > <forms name="formName" defaultUrl="login.aspx" loginUrl="/root/admin/login.aspx" protection="Encryption" timeout="30" path="/"/> </authentication> <authorization> <allow users="?" /> </authorization> </system.web> </location>

MSDN

Para la administración centralizada, la configuración se puede aplicar en el archivo Machine.config. La configuración en el archivo Machine.config define la política de toda la máquina y también se puede usar para aplicar una configuración específica de la aplicación utilizando elementos <location> . Los desarrolladores pueden proporcionar archivos de configuración de aplicaciones para anular aspectos de la política de la máquina. Para las aplicaciones web ASP.NET, un archivo Web.config se encuentra en el directorio raíz virtual de la aplicación y, opcionalmente, en subdirectorios debajo de la raíz virtual.

Si desea 1 ubicación de inicio de sesión y diferentes niveles de acceso, es posible que desee usar roles .

<location path="/root"> <system.web> <authorization> <allow roles="admin,root" />/*admin, root is allowed */ <deny users="*" /> </authorization> <system.web> </location> <location path="/root/admin"> <system.web> <authorization> <allow roles="admin" />/*admin is allowed */ <deny users="*" /> </authorization> <system.web> </location>

Los usuarios pueden pertenecer a más de un rol. Por ejemplo, si su sitio es un foro de discusión, algunos usuarios pueden desempeñar el papel de Miembros y Moderadores. Puede definir que cada función tenga diferentes privilegios en el sitio, y un usuario que tenga ambos roles tendrá ambos conjuntos de privilegios.

Puede acceder a todos estos elementos en el nivel de código si desea manipular los roles / autenticación mediante programación

Page.User.Identity.Name Page.User.Identity.IsAuthenticated Page.User.Identity.AuthenticationType Page.User.IsInRole("string");

Tutoriales

Tutorial de 4 chicos de Rolla

El archivo ASP.NET web.config Desmitificado