Erkennen Web.Config-Authentifizierungsmodus
-
01-07-2019 - |
Frage
Sagen wir, ich habe folgendes web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authentication mode="Windows"></authentication>
</system.web>
</configuration>
Mit ASP.NET C #, wie kann ich den Modus Wert des Authentication-Tages erkennen?
Lösung
Versuchen Context.User.Identity.AuthenticationType
für Antwort Leute PB Go
Andere Tipps
Der Modus Eigenschaft aus dem AuthenticationSection: AuthenticationSection.Mode Property (System.Web.Configuration) . Und Sie können es auch ändern.
// Get the current Mode property.
AuthenticationMode currentMode =
authenticationSection.Mode;
// Set the Mode property to Windows.
authenticationSection.Mode =
AuthenticationMode.Windows;
Dieser Artikel beschreibt , wie man erhalten einen Verweis auf die AuthenticationSection .
Importieren des System.Web.Configuration
Namespace und so etwas wie:
var configuration = WebConfigurationManager.OpenWebConfiguration("/");
var authenticationSection = (AuthenticationSection)configuration.GetSection("system.web/authentication");
if (authenticationSection.Mode == AuthenticationMode.Forms)
{
//do something
}
Sie können auch den Authentifizierungsmodus erhalten, indem die statischen ConfigurationManager
Klasse den Abschnitt und dann die Aufzählungs AuthenticationMode
zu erhalten.
AuthenticationMode authMode = ((AuthenticationSection) ConfigurationManager.GetSection("system.web/authentication")).Mode;
Der Unterschied zwischen WebConfigurationManager und Configuration
Wenn Sie den Namen der Konstanten in der angegebenen Aufzählung abrufen möchten, können Sie dies tun, indem Sie die Enum.GetName(Type, Object)
Methode mit
Enum.GetName(typeof(AuthenticationMode), authMode); // e.g. "Windows"
eine XPath-Abfrage //configuration/system.web/authentication[mode verwenden]?
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;
}