目前我有一个 WPF windows 应用程序,它从以下过程中获取 SWT 令牌:
- 通过调用获取提供程序:
$"{Namespace}/v2/metadata/IdentityProviders.js?protocol=javascriptnotify&realm={HttpUtility.UrlEncode(realm)}&version=1.0"
- 将给定的 LoginUrl 调用到不可见的网络浏览器中
- 提示用户输入 AD 的用户名和密码
- 使用 ObjectForScripting 捕获通知操作并获取令牌
- 将令牌发送到对其进行验证的网络服务器,并使用声明完成正确的应用程序用户登录。
现在的问题是,当我再次尝试登录时,它将重新使用以前的凭据,而不是再次询问用户名和密码。
我尝试过但不起作用的方法:
- 导航到与登录同时给出的注销 url。它看起来像
https://{AD_URL}/adfs/ls/?wa=wsignout1.0
- 尝试直接在 azure ACS 命名空间调用注销,但给我一个错误页面
{命名空间}/v2/wsfederation?wa=wsignoutcleanup1.0&wtrealm={HttpUtility.UrlEncode(realm)}
- 释放 webbrowser 控件并创建一个新控件
以上都不起作用,它总是重用凭据。