【问题标题】:How to check connection is made into a server when using PrincipalContext?使用 PrincipalContext 时如何检查连接到服务器?
【发布时间】:2015-04-29 15:10:21
【问题描述】:

我需要更改连接在同一网络中的计算机上的 windows 用户的密码。为此我使用PrincipalContext方法连接机器,然后获取指定的用户,最后更改密码。

 private bool ChangeUserPassword(string serverName,string serverip,string adminUserName, string adminUserPassword, string userName, string newIISPassword)
    {                                   
            using (var context = new PrincipalContext(ContextType.Machine, serverName, adminUserName, adminUserPassword))                
            using (var user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, userName))
            {
                user.SetPassword(newIISPassword);
                user.Save();
            }
}

问题是有时我在提供“ServerName”时无法连接到服务器,但可以使用“ServerIp”,反之亦然。 如果已连接context.ConnectedServer 将显示服务器名称,如果没有则显示未知路径或错误用户名错误。

如果没有建立连接,我可以使用 serverIp 作为参数

 using (var context = new PrincipalContext(ContextType.Machine, serverIp, adminUserName, adminUserPassword))  

为此,我尝试if( context.ConnectedServer != serverName) 知道连接不起作用并将上面的代码放入其中。但是由于没有ConnectedServer,它会返回错误。

如何检查与服务器的连接是否建立?

【问题讨论】:

    标签: c# asp.net server principalcontext


    【解决方案1】:

    您的 DNS 服务器可能未在您的网络上完全配置。请使用您的机器名称的 FQDN。

    【讨论】:

    • 我正在为客户开发此应用程序。我不能坚持让他们在他们的网络上进行此更改。所以在代码层面寻找解决方案是我现在唯一的选择。
    • 我并不是说要在他们的网络上进行更改。我只是说他们应该输入/使用完整的计算机名称
    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 2014-07-11
    • 2022-01-12
    • 2019-12-05
    • 2012-11-12
    • 2012-06-01
    相关资源
    最近更新 更多