Detecting Web.Config Authentication Mode

前端 未结 5 1306
故里飘歌
故里飘歌 2021-02-13 09:15

Say I have the following web.config:



    
        

        
相关标签:
5条回答
  • 2021-02-13 09:59

    Import the System.Web.Configuration namespace and do something like:

    var configuration = WebConfigurationManager.OpenWebConfiguration("/");
    var authenticationSection = (AuthenticationSection)configuration.GetSection("system.web/authentication");
    if (authenticationSection.Mode == AuthenticationMode.Forms)
    {
      //do something
    }
    
    0 讨论(0)
  • 2021-02-13 10:09

    The mode property from the authenticationsection: AuthenticationSection.Mode Property (System.Web.Configuration). And you can even modify it.

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

    This article describes how to get a reference to the AuthenticationSection.

    0 讨论(0)
  • 2021-02-13 10:10

    use an xpath query //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;
    }
    
    0 讨论(0)
  • 2021-02-13 10:20

    You can also get the authentication mode by using the static ConfigurationManager class to get the section and then the enum AuthenticationMode.

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

    The difference between WebConfigurationManager and ConfigurationManager


    If you want to retrieve the name of the constant in the specified enumeration you can do this by using the Enum.GetName(Type, Object) method

    Enum.GetName(typeof(AuthenticationMode), authMode); // e.g. "Windows"
    
    0 讨论(0)
  • 2021-02-13 10:21

    Try Context.User.Identity.AuthenticationType

    Go for PB's answer folks

    0 讨论(0)
提交回复
热议问题