通过Active Directory查询,被卡住,无法隐式转换类型';int';到';字符串';
本文关键字:类型 转换 字符串 int 查询 Directory Active 通过 | 更新日期: 2023-09-27 18:27:15
我目前正在处理一个我称之为用户提取的项目,该项目包含一个基于我的域的活动目录中的用户列表框,当选择某个用户时,我会获得该用户的所有信息,如姓名、电子邮件、电话等,但活动目录中有些值存储为整数8值,只有当值是活动目录中的字符串时,我才能使用GetDirectoryEntry().Properties并在文本框上显示所有信息。从下面的代码中,主目录、主驱动器、创建时、更改时都在工作,因为它们要么是通用时间格式,要么是字符串格式,但帐户过期、上次注销、错误密码时间不起作用,因为它们是整数8类型,我试过了:
if (rs.GetDirectoryEntry().Properties["lastLogonTimestamp"].Value != null)
lastlogon.Text = rs.GetDirectoryEntry().Properties["lastLogonTimestamp"].Value.ToString();
int x = Int32.Parse(lastlogon.Text);
lastlogon.Text = x;
我得到的错误:
Error 1 Cannot implicitly convert type 'int' to 'string'
任何帮助都非常感谢,谢谢大家!!!!
这是我正在使用的代码:
private void ShowUserInformation(SearchResult rs)
if (rs.GetDirectoryEntry().Properties["accountExpires"].Value != null)
accountexpires.Text = rs.GetDirectoryEntry().Properties["accountExpires"].Value.ToString();
if (rs.GetDirectoryEntry().Properties["homeDrive"].Value != null)
homedrive.Text = rs.GetDirectoryEntry().Properties["homeDrive"].Value.ToString();
if (rs.GetDirectoryEntry().Properties["homeDirectory"].Value != null)
homedirectory.Text = rs.GetDirectoryEntry().Properties["homeDirectory"].Value.ToString();
if (rs.GetDirectoryEntry().Properties["whenCreated"].Value != null)
WhenCreate.Text = rs.GetDirectoryEntry().Properties["whenCreated"].Value.ToString();
if (rs.GetDirectoryEntry().Properties["lastLogoff"].Value != null)
lastloggedoff.Text = rs.GetDirectoryEntry().Properties["lastLogoff"].Value.ToString();
if (rs.GetDirectoryEntry().Properties["badPasswordTime"].Value != null)
badpassword.Text = rs.GetDirectoryEntry().Properties["badPasswordTime"].Value.ToString();
以下作品感谢DJ Kraze
private void showuserinfo()
{
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
UserPrincipal qbeUser = new UserPrincipal(ctx);
PrincipalSearcher srch = new PrincipalSearcher(qbeUser);
foreach (var found in srch.FindAll())
{
try
{
UserPrincipal foundUser = found as UserPrincipal;
if (foundUser != null)
{
foundUser.IsAccountLockedOut();
lastlogon.Text = (foundUser.LastLogon).ToString();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
if (rs.GetDirectoryEntry().Properties["lastLogonTimestamp"].Value != null)
lastlogon.Text = rs.GetDirectoryEntry().Properties["lastLogonTimestamp"].Value.ToString();
int x = Int32.Parse(lastlogon.Text);
lastlogon.Text = x.ToString();
请注意,x
是int
而不是string
,因此在将其分配给lastlogon.Text
的属性之前,需要强制转换它。