gpt4 book ai didi

azure - 如何控制 ADAL AuthenticationContext 中的登录流程?

转载 作者:行者123 更新时间:2023-12-01 05:14:49 24 4
gpt4 key购买 nike

使用 ADAL 库获取 WAAD token ,我想知道如何更好地控制登录流程。

var ac = new AuthenticationContext("https://login.windows.net/" + ActiveDirectoryTenantId);
AuthenticationInfo = ac.AcquireToken(
resource: "https://management.core.windows.net/",
clientId: "1950a258-227b-4e31-a9cf-717495945fc2",
redirectUri: new Uri("urn:ietf:wg:oauth:2.0:oob"));

系统会提示用户登录。对于我来说,它是通过 Live Id 进行的,对于我客户的计算机来说,它是通过组织帐户进行的,并且无法在它们之间进行切换。它似乎是由计算机可能运行的当前 session 的方式/内容来控制的,该 session 已登录到 azure。

我可以在 AcquireToken 调用中执行任何操作来控制它吗?当人们登录 Azure 时,如果我可以触发正常流程,他们可以选择是实时 ID 还是组织登录,那就最好了。

我已经尝试过这个:

ac.AcquireToken("https://management.core.windows.net/",
"1950a258-227b-4e31-a9cf-717495945fc2",
new Uri("urn:ietf:wg:oauth:2.0:oob"), PromptBehavior.Always,"wtrealm=urn:federation:MicrosoftOnline");

运气不好。

最佳答案

我发现了一些似乎可以提供更多控制的魔术技巧。

// ID for site to pass to enable EBD (email-based differentiation)
// This gets passed in the call to get the azure branding on the
// login window. Also adding popup flag to handle overly large login windows.
internal const string EnableEbdMagicCookie = "site_id=501358&display=popup";

private void ClearCookies()
{
NativeMethods.InternetSetOption(IntPtr.Zero, NativeMethods.INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0);
}

private static class NativeMethods
{
internal const int INTERNET_OPTION_END_BROWSER_SESSION = 42;

[DllImport("wininet.dll", SetLastError = true)]
internal static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer,
int lpdwBufferLength);
}

关于azure - 如何控制 ADAL AuthenticationContext 中的登录流程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21689686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com