"/>

关于c#:检测Web.Config身份验证模式

关于c#:检测Web.Config身份验证模式

Detecting Web.Config Authentication Mode

说我有以下web.config:

1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
        </authentication>
    </system.web>
</configuration>

使用ASP.NET C#,如何检测Authentication标记的Mode值?


身份验证部分中的mode属性:AuthenticationSection.Mode属性(System.Web.Configuration)。 您甚至可以对其进行修改。

1
2
3
4
5
6
7
// Get the current Mode property.
AuthenticationMode currentMode =
    authenticationSection.Mode;

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

本文介绍如何获取对AuthenticationSection的引用。


导入System.Web.Configuration名称空间,然后执行以下操作:

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

您还可以通过使用静态ConfigurationManager类获取该部分,然后获取枚举AuthenticationMode来获取身份验证模式。

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

WebConfigurationManager和ConfigurationManager之间的区别

如果要在指定的枚举中检索常量的名称,可以使用Enum.GetName(Type, Object)方法执行此操作

1
Enum.GetName(typeof(AuthenticationMode), authMode); // e.g."Windows"

尝试Context.User.Identity.AuthenticationType

寻求PB的答案


使用xpath查询//configuration/system.web/authentication[mode]?

1
2
3
4
5
6
7
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;
}


推荐阅读

    纯命令行模式linux?

    纯命令行模式linux?,系统,密码,终端,状态,设备,情况,第一,设计,信息,环境,Lin

    linux命令行模式网络?

    linux命令行模式网络?,网络,基础,系统,服务,管理,工作,命令,信息,中级,设备,l

    linux命令行模式登录?

    linux命令行模式登录?,系统,密码,信息,状态,情况,终端,环境,管理,电脑,位置,l

    linux退出命令模式?

    linux退出命令模式?,状态,档案,命令,环境,密码,终端,文件,模式,编辑,端口,lin

    linux命令模式加行?

    linux命令模式加行?,工作,地址,系统,命令,工具,正规,信息,时间,第一,模式,Lin

    linux磁盘检测命令?

    linux磁盘检测命令?,情况,系统,数据,检测,管理,信息,命令,磁盘,设备,单位,lin

    linux命令行模式使用?

    linux命令行模式使用?,工作,地址,目录,信息,名称,系统,管理,命令,文件,标准,l

    linux检测gpu命令?

    linux检测gpu命令?,信息,系统,工具,检测,情况,电脑,数字,环境,网上,报告,linu

    硬盘检测命令linux?

    硬盘检测命令linux?,信息,情况,系统,管理,数据,检测,百分比,命令,工具,设备,l

    linux性能检测命令?

    linux性能检测命令?,系统,情况,信息,状态,工具,实时,百分比,指标,分析,命令,

    linux切换成命令模式?

    linux切换成命令模式?,密码,系统,工具,模式,命令,首页,状态,图形界面,终端,

    linux命令行模式清页?

    linux命令行模式清页?,工作,系统,命令,信息,地址,目录,内容,文件,操作,功能,l

    linux进入命令行模式?

    linux进入命令行模式?,系统,地址,情况,工作,命令,终端,首页,信息,目录,界面,l

    linux底线模式命令?

    linux底线模式命令?,系统,档案,密码,状态,工作,命令,模式,文件,明文,界面,lin

    linux命令标记注释?

    linux命令标记注释?,地址,基础,系统,底部,命令,文件,参数,注释,程序,控制台,3

    linux启用命令模式?

    linux启用命令模式?,系统,密码,数字,首页,电脑,情况,终端,界面,模式,命令,安

    linux命令行模式联网?

    linux命令行模式联网?,系统,网络,地址,密码,软件,检测,信息,工具,终端,界面,l

    linux回到命令行模式?

    linux回到命令行模式?,系统,密码,状态,工具,电脑,终端,界面,环境,地方,命令,

    linux命令模式联网?

    linux命令模式联网?,网络,系统,工具,软件,密码,地址,最新,信息,工作,数据,lin

    linux进去命令模式?

    linux进去命令模式?,系统,密码,首页,终端,命令,界面,窗口,选项,桌面,用户,lin