net loginurl form cookie aspx asp c# asp.net authentication web-config

c# - loginurl - Detección del modo de autenticación Web.Config



web config forms authentication (5)

La propiedad mode de la sección authentication: AuthenticationSection.Mode Property (System.Web.Configuration) . E incluso puedes modificarlo.

// Get the current Mode property. AuthenticationMode currentMode = authenticationSection.Mode; // Set the Mode property to Windows. authenticationSection.Mode = AuthenticationMode.Windows;

Este artículo describe cómo obtener una referencia a AuthenticationSection .

Digamos que tengo el siguiente web.config:

<?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <authentication mode="Windows"></authentication> </system.web> </configuration>

Usando ASP.NET C #, ¿cómo puedo detectar el valor de Modo de la etiqueta de Autenticación?


usar una consulta xpath //configuration/system.web/authentication[mode]?

protected void Page_Load(object sender, EventArgs e) { XmlDocument config = new XmlDocument(); config.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile); XmlNode node = config.SelectSingleNode("//configuration/system.web/authentication"); this.Label1.Text = node.Attributes["mode"].Value; }


Importe el espacio de nombres System.Web.Configuration y haga algo como:

var configuration = WebConfigurationManager.OpenWebConfiguration("/"); var authenticationSection = (AuthenticationSection)configuration.GetSection("system.web/authentication"); if (authenticationSection.Mode == AuthenticationMode.Forms) { //do something }


Pruebe Context.User.Identity.AuthenticationType

Ir a la gente de respuesta de PB


También puede obtener el modo de autenticación utilizando la clase estática de ConfigurationManager para obtener la sección y luego el enum AuthenticationMode .

AuthenticationMode authMode = ((AuthenticationSection) ConfigurationManager.GetSection("system.web/authentication")).Mode;

La diferencia entre WebConfigurationManager y ConfigurationManager

Si desea recuperar el nombre de la constante en la enumeración especificada, puede hacerlo utilizando el Enum.GetName(Type, Object)

Enum.GetName(typeof(AuthenticationMode), authMode); // eg "Windows"