You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# Selenium登录Dynamics 365时遇AADSTS90100错误求助

解决Dynamics 365 Selenium登录AADSTS90100错误的思路

这个错误的核心原因是Azure AD未接收到有效的登录参数(邮箱),大概率是自动化执行速度过快,导致输入内容未被表单正确识别,或必要的页面事件未触发。以下是针对性的解决步骤:

  • 触发输入框的change事件
    现代表单通常依赖change或input事件同步输入内容到后台逻辑,Selenium的SendKeys可能不会自动触发这些事件。输入后手动触发:

    var userNameInput = _driver.WaitUntilAvailable(By.CssSelector("input[type='email']"), TimeSpan.FromSeconds(10));
    userNameInput.Clear(); // 先清空输入框,避免残留内容干扰
    userNameInput.SendKeys(login.ToUnsecureString());
    // 用JS触发change事件,确保表单识别输入内容
    _driver.ExecuteScript("arguments[0].dispatchEvent(new Event('change'));", userNameInput);
    
  • 验证输入内容已写入DOM
    不要只等元素可见,要确认输入的邮箱确实出现在输入框的value属性中,再点击Next:

    var expectedEmail = login.ToUnsecureString();
    // 等待输入框的value等于预期邮箱
    _driver.WaitUntil(d => userNameInput.GetAttribute("value") == expectedEmail, TimeSpan.FromSeconds(5));
    var submitButton = _driver.WaitUntilClickable(By.CssSelector("input[type='submit'][value='Next']"), TimeSpan.FromSeconds(10));
    submitButton.Click();
    
  • 检查页面iframe或重定向状态
    Dynamics的登录页面有时嵌套在iframe中,或跳转过程中Selenium未同步页面状态。可以先检查并切换到对应iframe:

    _driver.Url = "https://{domain}.crm4.dynamics.com/";
    _driver.WaitForPageToLoad(TimeSpan.FromSeconds(10));
    // 检查是否存在登录iframe(根据实际ID调整)
    var loginIframe = _driver.WaitUntilAvailable(By.CssSelector("iframe[src*='login.microsoftonline.com']"), TimeSpan.FromSeconds(10));
    if (loginIframe != null)
    {
        _driver.SwitchTo().Frame(loginIframe);
    }
    // 后续输入操作...
    
  • 改用Azure AD直接登录端点
    跳过Dynamics的初始重定向,直接访问Azure AD的登录URL,减少跳转过程中的不确定性:

    // 替换{domain}为你的实际域名
    _driver.Url = "https://login.microsoftonline.com/common/oauth2/authorize?client_id=51f81489-12ee-4a9e-aaae-a2591f45987d&resource=https://{domain}.crm4.dynamics.com&response_type=code&redirect_uri=https://{domain}.crm4.dynamics.com/main.aspx";
    

    注:client_id是Dynamics 365的默认客户端ID,若无效可通过F12手动登录时抓包获取。

内容的提问来源于stack exchange,提问作者Артур

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 16:46:05