c# 获取 当前AD等认证信息

本文展示了一个使用ASP.NET的网页示例,该示例通过不同的方式获取当前用户的认证信息,包括HttpContext、Thread和WindowsIdentity等,从而展示了不同环境下用户身份验证的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<%@ Page language="c#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Threading" %>
<%@ Import Namespace="System.Security.Principal" %>
<HTML>
<HEAD>
<title> WhoAmI </title>
</HEAD>
<body>
<form id="WhoAmI" method="post" runat="server">
<TABLE id=contextTable border=1>
<TR>
<TD align=middle colSpan=3>
HttpContext.Current.User.Identity </TD>
</TR>
<TR>
<TD> <b> Name </b> </TD>
<TD> <asp:Label ID="contextName" Runat="server" /> </TD>
</TR>
<TR>
<TD> <b> IsAuthenticated </b> </TD>
<TD> <asp:Label ID="contextIsAuth" Runat="server" /> </TD>
</TR>
<TR>
<TD> <b> AuthenticationType </b> </TD>
<TD> <asp:Label ID="contextAuthType" Runat="server" /> </TD>
</TR>
</TABLE>
<br/> <br/>

<TABLE id=windowsIdentityTable border=1>
<TR>
<TD align=middle colSpan=3> WindowsIdentity.GetCurrent() </TD>
</TR>
<TR>
<TD> <b> Name </b> </TD>
<TD> <asp:Label ID="windowsName" Runat="server" /> </TD>
</TR>
<TR>
<TD> <b> IsAuthenticated </b> </TD>
<TD> <asp:Label ID="windowsIsAuth" Runat="server" /> </TD>
</TR>
<TR>
<TD> <b> AuthenticationType </b> </TD>
<TD> <asp:Label ID="windowsAuthType" Runat="server" /> </TD>
</TR>
</TABLE>
<br/> <br/>

<TABLE id=threadIdentityTable border=1>
<TR>
<TD align=middle colSpan=3
rowSpan=""> Thread.CurrentPrincipal.Identity </TD>
</TR>
<TR>
<TD> <b> Name </b> </TD>
<TD> <asp:Label ID="threadName" Runat="server" /> </TD>
</TR>
<TR>
<TD> <b> IsAuthenticated </b> </TD>
<TD> <asp:Label ID="threadIsAuthenticated" Runat="server" /> </TD>
</TR>
<TR>
<TD> <b> AuthenticationType </b> </TD>
<TD> <asp:Label ID="threadAuthenticationType" Runat="server" /> </TD>
</TR>
</TABLE>
</form>
</body>
</HTML>
<script runat=server>
void Page_Load(Object sender, EventArgs e)
{
IIdentity id = HttpContext.Current.User.Identity;
if(null != id)
{
contextName.Text = id.Name;
contextIsAuth.Text = id.IsAuthenticated.ToString();
contextAuthType.Text = id.AuthenticationType;
}
id = Thread.CurrentPrincipal.Identity;
if(null != id)
{
threadName.Text = id.Name;
threadIsAuthenticated.Text = id.IsAuthenticated.ToString();
threadAuthenticationType.Text = id.AuthenticationType;
}
id = WindowsIdentity.GetCurrent();
windowsName.Text = id.Name;
windowsIsAuth.Text = id.IsAuthenticated.ToString();
windowsAuthType.Text = id.AuthenticationType;
}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值