c# - 使用 Azure Active Directory 身份验证而不重定向到 Microsoft

标签 c# visual-studio azure asp.net-web-api azure-active-directory

是否可以简单地将用户名和密码传递到 Azure Active Directory 并取回不记名 token ,而不是将用户发送到 login.microsoft.com 网站?

重定向破坏了我的 Visual Studio 调试并导致无法查看发生了什么。

最佳答案

不太确定您的确切设置是什么。但是,可以使用密码授予直接获取承载 token 。

我仅建议将此用于测试目的。在生产场景中使用此授权只能用于遗留目的。

https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/wiki/Username-Password-Authentication

string authority = "https://login.microsoftonline.com/contoso.com";
string[] scopes = new string[] { "user.read" };
PublicClientApplication app = new PublicClientApplication(clientId, authority);


    try
    {
        var securePassword = new SecureString();
        foreach (char c in "dummy")        // you should fetch the password
            securePassword.AppendChar(c);  // keystroke by keystroke

        result = await app.AcquireTokenByUsernamePasswordAsync(scopes, "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c6aca9a386a5a9a8b2a9b5a9e8a5a9ab" rel="noreferrer noopener nofollow">[email protected]</a>",
                                                               securePassword);
    }
    catch(MsalException)
    {
      // See details below
    }

Console.WriteLine(result.Account.Username);

您还可以使用 Postman 或类似工具:

curl -X POST \
   https://login.windows.net/<tenant>/oauth2/token \
   -H 'Accept: application/json' \
   -H 'Content-Type: application/x-www-form-urlencoded' \
   -d 'grant_type=password&scope=openid&resource=<resourceUri>&client_id=<yourClientId>&client_secret=<clientSecret>&username=<username>&password=<password>'

关于c# - 使用 Azure Active Directory 身份验证而不重定向到 Microsoft,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54317112/

相关文章:

c# - 发送 AT 命令

c# - 在wpf C#中构造超链接

c# - 使用缓存机制进行节流有问题吗?

c# - 请解释 C# 属性是如何工作的?

c++ - OpenGL 轴出现不同

c# - 如何修复此 EventArgs c#

Azure 函数-错误 MSB4057 : The target "MsDeployPublish" does not exist in the project

javascript - 如何调试 Metro 风格应用程序中 eval 代码中的异常

azure - Azure Active Directory 应用程序注册如何建立信任?

azure - 如何让 Ubuntu 看到我在 azure 门户中增加了磁盘大小