我有一台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?