如何获取 Azure Active Directory 登录用户的密码策略

2024-05-20

我想使用 graph api 或 adal 获取 C# 中登录用户的密码到期日期。

有了这个问题,我知道如何使用 PowerShell 获取密码策略以及到期日期,但还不确定如何使用 C#

在 PowerShell 中获取 Azure Active Directory 密码到期日期 https://stackoverflow.com/questions/43294517/

在 c# 中,我想获取密码到期日期或作为替代的 LastPasswordChangedDate。

使用AD图API


要使用C#获取Azure AD用户的此属性,我们可以直接调用PowerShell命令。您可以参考下面的代码示例来实现目标:

private static void GetPasswordExpiredDate()
{
    try
    {
        var userName = "";
        var password = "";
        var securePassword = new SecureString();
        var domainName = "";
        foreach (char c in password)
        {
            securePassword.AppendChar(c);
        }

        Collection<PSObject> user = null;
        Collection<PSObject> passwordPolicy = null;
        // Create Initial Session State for runspace.
        InitialSessionState initialSession = InitialSessionState.CreateDefault();
        initialSession.ImportPSModule(new[] { "MSOnline" });
        // Create credential object.
        PSCredential credential = new PSCredential(userName, securePassword);
        // Create command to connect office 365.
        Command connectCommand = new Command("Connect-MsolService");
        connectCommand.Parameters.Add((new CommandParameter("Credential", credential)));
        // Create command to get office 365 users.
        Command getPasswordPolicy = new Command("Get-MsolPasswordPolicy");
        getPasswordPolicy.Parameters.Add(new CommandParameter("DomainName", domainName));
        //Command getUserCommand = new Command("$UserPrincipal=Get-MsolUser -UserPrincipalName '[email protected] /cdn-cgi/l/email-protection'");
        Command getUserCommand = new Command("Get-MsolUser");
        getUserCommand.Parameters.Add(new CommandParameter("UserPrincipalName", "[email protected] /cdn-cgi/l/email-protection"));
        //Command getPasswordExpiredDate = new Command("$UserPrincipal.LastPasswordChangeTimestamp.AddDays($PasswordPolicy.ValidityPeriod)");

        using (Runspace psRunSpace = RunspaceFactory.CreateRunspace(initialSession))
        {
            // Open runspace.
            psRunSpace.Open();
            //Iterate through each command and executes it.
            foreach (var com in new Command[] { connectCommand, getUserCommand, getPasswordPolicy })
            {
                var pipe = psRunSpace.CreatePipeline();
                pipe.Commands.Add(com);
                if (com.Equals(getUserCommand))
                    user = pipe.Invoke();
                else if (com.Equals(getPasswordPolicy))
                    passwordPolicy = pipe.Invoke();
                else
                    pipe.Invoke();
            }
            DateTime date =(DateTime) user[0].Properties["LastPasswordChangeTimestamp"].Value;
            UInt32 ValidityPeriod = (UInt32)passwordPolicy[0].Properties["ValidityPeriod"].Value;
            Console.WriteLine($"The password will be expired at {date.AddDays(ValidityPeriod)}");
            // Close the runspace.
            psRunSpace.Close();
        }
    }
    catch (Exception)
    {
        throw;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取 Azure Active Directory 登录用户的密码策略 的相关文章

随机推荐

  • Java 服务器-客户端 readLine() 方法

    我有一个客户端类和一个服务器类 如果客户端向服务器发送消息 服务器会将响应发送回客户端 然后客户端将打印它收到的所有消息 例如 如果客户端向服务器发送 A 则服务器将向客户端发送响应 1111 所以我在客户端类中使用 readLine 从服
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • F# 尝试处理未处理的异常

    在下面的代码中 我想读取一个文件并返回所有行 如果存在 IO 错误 我希望程序退出并将错误消息打印到控制台 但程序仍然遇到未处理的异常 对此的最佳实践是什么 我想我不需要Some None因为无论如何我都希望程序在错误时退出 谢谢 let
  • 如何计算numpy数组中元素的频率?

    我有一个 3 D numpy 数组 其中包含重复的元素 counterTraj shape 13530 1 1 例如 counterTraj 包含这样的元素 我只显示了几个元素 array 136 129 130 103 102 101 我
  • 自动包含在 Visual Studio 外部创建的新文件

    Problem 如果我将图像保存在项目文件夹结构中的某个位置 则在 Visual Studio 外部创建的图像不会自动包含到我的项目中 问题 有没有办法自动包含添加到项目中任何文件夹中的新文件 我还使用源代码管理 团队基础服务器 如果新文件
  • 具有定制损失函数的随机森林

    我是机器学习领域的初学者 对于一个项目 我必须在随机森林分类中使用自定义损失函数 到目前为止我一直使用 scikit 通过 scikit 实现这一点的建议会更有帮助 损失函数 分类树中的基尼杂质和熵 在 scikit 的 tree pyx
  • 如何查看 Android 上的 Wi-Fi 是否已连接?

    我什至不希望我的用户尝试下载某些内容 除非他们连接了 Wi Fi 然而 我似乎只能判断是否启用了 Wi Fi 但他们仍然可以有 3G 连接 android net wifi WifiManager m WifiManager getSyst
  • Angular 无法检测到从 Ngxs 状态发出的 Http 请求(区域相关问题)

    我正在使用 ngx progressbar 它可以很好地处理从服务 组件或解析器内部启动的 http 请求 请注意 在 http 请求期间不需要手动触发进度条 通过服务等 它是自动触发的 不幸的是 当从 NGXS State 中发出 htt
  • 将子目录添加到加载路径

    我希望能够自动加载它们 而不是单独指定插件目录中的每个子目录 为此 我将以下内容包含到我的 emacs 文件中 let base emacs d plugins normal top level add subdirs to load pa
  • 为什么Python的curses中escape键有延迟?

    In the Python curses module I have observed that there is a roughly 1 second delay between pressing the esc key and getc
  • 使用 CryptoJS 更改密钥 [重复]

    这个问题在这里已经有答案了 我正在使用 CryptoJS 来加密和解密文本 在这里 我只是获取消息并显示加密和解密消息 我使用DES算法进行加密和解密 这是我的 HTML 文件
  • 如何为背景图像添加边距?

    我想向背景图像添加边距 以便将其与屏幕中间保持距离 但将其添加到该类中会为整个主体添加边距 body poppage background url Imagenes tip3 png 50 200px no repeat E2E4E9 我怎
  • Orchard CMS:向字段添加默认数据,然后查询它们

    我已使用与内容类型同名的部分向内容类型添加了一个名为 Website 的 LinkField ContentDefinitionManager AlterTypeDefinition MyContentType a gt a WithPar
  • 即使我可以监视其他方法,也无法监视事件处理程序

    我想使用 Jest Jasmine Enzyme 测试 React 中的事件处理程序 MyComponent js import React from react class MyComponent extends React Compon
  • Web 视图未在 Android 中加载本地 html 文件

    I am integrating html in android I have created a web view But i am not able load local html page Surprisingly web view
  • Pandas 数据帧到 numpy 数组 [重复]

    这个问题在这里已经有答案了 我对 Python 很陌生 经验也很少 我已经设法通过复制 粘贴和替换我拥有的数据来使一些代码正常工作 但是我一直在寻找如何从数据框中选择数据 但无法理解这些示例并替换我自己的数据 总体目标 如果有人真的可以帮助
  • 获取包含矩阵行内最大值的列名称,该矩阵在数组内包含单独的最大值

    例如给出 dim1 lt c P PO C T dim2 lt c LL RR R Y dim3 lt c Jerry1 Jerry2 Jerry3 Q lt array 1 48 c 4 4 3 dimnames list dim1 di
  • ASP.Net CascadingDropDown 和 EnableEventValidation="false"

    我刚刚从 AJAX 工具包中获得了 CascadingDropDown 与 SelectedIndexChanged 一起使用 以重定向到传递所选值的查询字符串的页面 我好高兴啊 但是 我只能通过向页面添加 EnableEventValid
  • 用于从字段中查找最大值的 MongoTemplate 方法或查询

    我正在使用 MongoTemplate 进行数据库操作 现在我想从所选结果中获取最大字段值 有人可以指导我如何编写查询 以便当我将查询传递给 find 方法时 它将返回我所需的文档最大字段 提前致谢 问候 可以在spring data mo
  • 如何获取 Azure Active Directory 登录用户的密码策略

    我想使用 graph api 或 adal 获取 C 中登录用户的密码到期日期 有了这个问题 我知道如何使用 PowerShell 获取密码策略以及到期日期 但还不确定如何使用 C 在 PowerShell 中获取 Azure Active