3

目前我有一个 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 控件并创建一个新控件

以上都不起作用,它总是重用凭据。

4

0 回答 0