通过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); 
        } 
    } 
}

通过Active Directory查询,被卡住,无法隐式转换类型';int';到';字符串';

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(); 

请注意,xint而不是string,因此在将其分配给lastlogon.Text的属性之前,需要强制转换它。