支持 Windows Server 2016 Active Directory?
Support Windows Server 2016 Active Directory?
我有一个使用 Windows Active Directory 获取当前 Windows 帐户名的 Winform 客户端。
有什么方法可以知道此解决方案是否适用于新的 Windows Server 2016 Active Directory 而无需进行设置?
客户代码
public string GetCurrentActiveDirectoryAccountName()
{
var windowsName = WindowsIdentity.GetCurrent().Name;
var index = windowsName.LastIndexOf("\");
if (index > 0)
windowsName = windowsName.Substring(index + 1);
return windowsName;
}
public void AuthenticateActiveDirectoryAccount(string username, string password)
{
//Hidden code to setup variables
if (ADUserName.Length > 0)
context = new PrincipalContext(ContextType.Domain, ADServer, ADUserName, ADUserPassword);
else
context = new PrincipalContext(ContextType.Domain, ADServer);
using (context)
{
if (!context.ValidateCredentials(account, password))
//Hidden code to throw exception
}
}
public string CheckActiveDirectoryAccount(string account)
{
///Hidden code to setup variables
if (ADUserName.Length > 0)
context = new PrincipalContext(ContextType.Domain, ADServer, null, ADUserName, ADUserPassword);
else
context = new PrincipalContext(ContextType.Domain, ADServer);
using (context)
{
if ((user = UserPrincipal.FindByIdentity(context, account)) == null)
{
if (account.Contains("\"))
{
userPrincipalNameList = user.UserPrincipalName.Split('\').ToList();
if (userPrincipalNameList.Count > 0)
user = UserPrincipal.FindByIdentity(context, userPrincipalNameList[0]);
}
}
if (user != null)
{
using (user)
{
userAccount = user.SamAccountName;
return userAccount.ToLower();
}
}
}
return string.Empty;
}
Microsoft 在向后兼容方面历来非常谨慎。这就是为什么你仍然可以 运行 DOS 程序在 Windows 10.
对于 AD,他们通常不会删除功能。他们只添加它们。查看本文以了解 AD for Server 2016 的新增功能:https://docs.microsoft.com/en-us/windows-server/identity/whats-new-active-directory-domain-services
我希望所有这些都能在 Server 2016 上与 AD 运行ning 一起使用。
我必须使用 Microsoft Windows Server 2016 进行测试,正如预期的那样,我的 AD 集成工作正常。
我有一个使用 Windows Active Directory 获取当前 Windows 帐户名的 Winform 客户端。
有什么方法可以知道此解决方案是否适用于新的 Windows Server 2016 Active Directory 而无需进行设置?
客户代码
public string GetCurrentActiveDirectoryAccountName()
{
var windowsName = WindowsIdentity.GetCurrent().Name;
var index = windowsName.LastIndexOf("\");
if (index > 0)
windowsName = windowsName.Substring(index + 1);
return windowsName;
}
public void AuthenticateActiveDirectoryAccount(string username, string password)
{
//Hidden code to setup variables
if (ADUserName.Length > 0)
context = new PrincipalContext(ContextType.Domain, ADServer, ADUserName, ADUserPassword);
else
context = new PrincipalContext(ContextType.Domain, ADServer);
using (context)
{
if (!context.ValidateCredentials(account, password))
//Hidden code to throw exception
}
}
public string CheckActiveDirectoryAccount(string account)
{
///Hidden code to setup variables
if (ADUserName.Length > 0)
context = new PrincipalContext(ContextType.Domain, ADServer, null, ADUserName, ADUserPassword);
else
context = new PrincipalContext(ContextType.Domain, ADServer);
using (context)
{
if ((user = UserPrincipal.FindByIdentity(context, account)) == null)
{
if (account.Contains("\"))
{
userPrincipalNameList = user.UserPrincipalName.Split('\').ToList();
if (userPrincipalNameList.Count > 0)
user = UserPrincipal.FindByIdentity(context, userPrincipalNameList[0]);
}
}
if (user != null)
{
using (user)
{
userAccount = user.SamAccountName;
return userAccount.ToLower();
}
}
}
return string.Empty;
}
Microsoft 在向后兼容方面历来非常谨慎。这就是为什么你仍然可以 运行 DOS 程序在 Windows 10.
对于 AD,他们通常不会删除功能。他们只添加它们。查看本文以了解 AD for Server 2016 的新增功能:https://docs.microsoft.com/en-us/windows-server/identity/whats-new-active-directory-domain-services
我希望所有这些都能在 Server 2016 上与 AD 运行ning 一起使用。
我必须使用 Microsoft Windows Server 2016 进行测试,正如预期的那样,我的 AD 集成工作正常。