在 IIS 中托管后未获取用户名 :: ldap C# 但在本地主机中工作正常
本文关键字:主机 工作 IIS 用户 获取 ldap | 更新日期: 2023-09-27 18:29:12
下面是我获取用户名的代码。
string user = Request.LogonUserIdentity.Name;
user = user.Substring(user.Length - 7, 7);
// lblusername.Text = user;
DirectorySearcher dssearch = new DirectorySearcher();
dssearch.Filter = "(sAMAccountName=" + user + ")";
SearchResult sresult = dssearch.FindOne();
if (sresult != null)
{
DirectoryEntry dsresult = new DirectoryEntry("LDAP://DC=somename,DC=com");
dsresult = sresult.GetDirectoryEntry();
lblusername.Text = dsresult.Properties["displayName"][0].ToString();
}
IIS 具有 Windows 身份验证模式。也在 Web Conbiq 中定义
确保在 IIS 上为该网站禁用"匿名访问"。
要验证这一点,请执行以下步骤:
- 打开 IIS
- 从 IIS 左侧区域显示的"站点"部分选择您的站点
- 双击"IIS"部分下的"身份验证"选项
- 应禁用"匿名访问"的状态。如果为"已启用",则将其更改为"已禁用">
这应该有效。
花了一天时间后,我通过删除默认的窗口保存凭据来解决它。