AuthenticationContext.AcquireTokenAsync弹出窗口无法关闭

时间:2019-10-02 16:11:06

标签: .net active-directory adfs identitymodel

我有一台AD FS服务器,其应用程序名为https://myapplication/。可通过URL https://myserver.com/myapplication获得。我已经使用GUID 4a9878e4-f1cb-4437-8030-6604a1f67a9d创建了一个客户端。

我正在创建一个.NET客户端(控制台应用程序),该客户端应对该应用程序进行身份验证:

class Program
{
    static async Task Main(string[] args)
    {
        var context = new AuthenticationContext("https://my-adfs-authority-server/adfs", false);

        var deviceCodeResult = await context.AcquireTokenAsync(
              "https://myapplication/",
              "4a9878e4-f1cb-4437-8030-6604a1f67a9d",
              new Uri("https://some-redirect-url"),
              new PlatformParameters(PromptBehavior.Auto)
        );

        Console.WriteLine(deviceCodeResult.AccessToken);
    }
}

身份验证显然可以正确进行:我弹出一个对话框,要求输入用户名和密码,并且它接受正确的用户/密码组合。

但是随后弹出窗口实际上尝试重定向到重定向URI。例如,如果我使用https://myserver.com/myapplication作为重定向URI,它将使用该地址的页面从字面上替换登录提示。

我需要一种方法来使它认识到身份验证已起作用,以便关闭弹出窗口。如果用户手动关闭弹出窗口,则AcquireTokenAsync会引发异常,并显示消息“用户已取消身份验证”-即使他们实际上已成功进行了身份验证。

也许我应该使用特殊的重定向URI?

0 个答案:

没有答案