Обнаружение режима аутентификации Web.Config - PullRequest
12 голосов
/ 18 сентября 2008

Скажите, что у меня есть следующий web.config:

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

Как я могу определить значение Mode тега Authentication с помощью ASP.NET C #?

Ответы [ 5 ]

28 голосов
/ 18 сентября 2008

Свойство mode из раздела аутентификации: Свойство AuthenticationSection.Mode (System.Web.Configuration) . И вы даже можете изменить его.

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

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

В этой статье описывается как получить ссылку на раздел аутентификации .

11 голосов
/ 14 августа 2011

Импортируйте пространство имен System.Web.Configuration и сделайте что-то вроде:

var configuration = WebConfigurationManager.OpenWebConfiguration("/");
var authenticationSection = (AuthenticationSection)configuration.GetSection("system.web/authentication");
if (authenticationSection.Mode == AuthenticationMode.Forms)
{
  //do something
}
4 голосов
/ 18 сентября 2008

Попробуйте Context.User.Identity.AuthenticationType

Пойдите для ответа PB люди

3 голосов
/ 26 сентября 2016

Вы также можете получить режим аутентификации, используя статический класс ConfigurationManager для получения раздела, а затем перечисление AuthenticationMode.

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

Разница между WebConfigurationManager и ConfigurationManager


Если вы хотите получить имя константы в указанном перечислении, вы можете сделать это, используя Enum.GetName(Type, Object) метод

Enum.GetName(typeof(AuthenticationMode), authMode); // e.g. "Windows"
0 голосов
/ 18 сентября 2008

использовать запрос 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;
}
...