无法使用其他帐户或“使用其他帐户”登录

吉姆普·卢西安·爱德华

我正在尝试将Microsoft sso与Xamarin.Forms应用程序集成。

我正在使用Microsoft.Identity.Client 4.7.1

我努力在同一台设备上使用不同的帐户登录,因为无论我做什么,似乎总是会选择第一个帐户。

  1. 用户A登录
  2. 用户A退出
  3. 用户B进入应用程序,并使用Microsoft登录页面打开Web视图,并提示“使用其他帐户”按钮,但是即使在输入他的帐户后,Web视图仍将其重定向为用户A并返回到移动应用程序。

这是处理登录和签出的代码:


private IPublicClientApplication _publicClientApplication;

public AuthService()
{
    _publicClientApplication = PublicClientApplicationBuilder.Create(Constants.MicrosoftAuthConstants.ClientId.Value)
        .WithAdfsAuthority(Constants.MicrosoftAuthConstants.Authority.Value)
        .WithRedirectUri(Constants.MicrosoftAuthConstants.RedirectUri.Value)
        .Build();
}

public async Task<string> SignInAsync()
{
    var authScopes = Constants.MicrosoftAuthConstants.Scopes.Value;
    AuthenticationResult authResult;

    try
    {
        // call to _publicClientApplication.AcquireTokenSilent
        authResult = await GetAuthResultSilentlyAsync();
    }
    catch (MsalUiRequiredException)
    {
        authResult = await _publicClientApplication.AcquireTokenInteractive(authScopes)
                  .WithParentActivityOrWindow(App.ParentWindow)
                  .ExecuteAsync();
    }

    return authResult.AccessToken;
}

private async Task<IAccount> GetCachedAccountAsync() => (await _publicClientApplication.GetAccountsAsync()).FirstOrDefault();

public async Task SignOutAsync()
{
    var firstCachedAccount = await GetCachedAccountAsync();
    await _publicClientApplication.RemoveAsync(firstCachedAccount);
}

一种解决方法是使用,Prompt.ForceLogin但是如果您每次必须键入凭据,那么sso的意义何在。

这行代码await _publicClientApplication.RemoveAsync(firstCachedAccount);可以从缓存中删除用户,它没有实现签出方法。因此,您需要通过以下api手动注销

https://login.microsoftonline.com/common/oauth2/v2.0/logout?post_logout_redirect_uri=https://localhost/myapp/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP的facebook SDK无法使用其他帐户登录

来自分类Dev

无法使用其他帐户连接Facebook

来自分类Dev

如何使用社交网络帐户或其他网站登录?

来自分类Dev

qliksense,除了使用域帐户自动登录外,如何使用其他帐户登录

来自分类Dev

无法使用Kotlin在Google登录名上为Android选择其他帐户

来自分类Dev

使用其他AD帐户提升权限

来自分类Dev

无法从Windows 10中的“其他应用程序使用的帐户”中删除损坏的帐户

来自分类Dev

我可以在其他帐户中使用 su 登录,但不能使用登录屏幕

来自分类Dev

通过其他网站登录 Gmail 帐户

来自分类Dev

使用其他帐户向Azure添加存储容器吗?

来自分类Dev

如何防止git自动使用其他帐户?

来自分类Dev

同时配置了SSO后,无法使用Microsoft帐户添加其他共同管理员

来自分类Dev

在其他活动中获取Google登录帐户

来自分类Dev

使用其他国家/地区的银行帐户验证商家帐户

来自分类Dev

php exec列出其他网络帐户

来自分类Dev

如何通过其他帐户还原提交

来自分类Dev

Cloudtrail 到 Cloudwatch 到其他帐户

来自分类Dev

我可以使用其他帐户重新发布我的应用程序吗?

来自分类Dev

可以通过twython使用来自其他帐户的appkey / secret key进行鸣叫吗?

来自分类Dev

移动或添加Asp Identity 2或使用其他帐户管理系统

来自分类Dev

使用EMR群集和其他帐户的s3文件运行作业

来自分类Dev

如何使用PowerShell 2.0在其他域上解锁Active Directory帐户?

来自分类Dev

Admob在其他国家/地区使用银行帐户

来自分类Dev

使用Google App脚本从其他帐户发送电子邮件

来自分类Dev

如何使用SAM模板cloudformation在其他AWS帐户中调用Lambda

来自分类Dev

是否可以拥有IMAP帐户但使用其他SMTP服务器?

来自分类Dev

可以通过twython使用来自其他帐户的appkey / secret key进行鸣叫吗?

来自分类Dev

通过使用其他关键字段而不是记录ID将帐户列表导入sugarcrm

来自分类Dev

我可以使用其他帐户重新发布我的应用程序吗?

Related 相关文章

  1. 1

    PHP的facebook SDK无法使用其他帐户登录

  2. 2

    无法使用其他帐户连接Facebook

  3. 3

    如何使用社交网络帐户或其他网站登录?

  4. 4

    qliksense,除了使用域帐户自动登录外,如何使用其他帐户登录

  5. 5

    无法使用Kotlin在Google登录名上为Android选择其他帐户

  6. 6

    使用其他AD帐户提升权限

  7. 7

    无法从Windows 10中的“其他应用程序使用的帐户”中删除损坏的帐户

  8. 8

    我可以在其他帐户中使用 su 登录,但不能使用登录屏幕

  9. 9

    通过其他网站登录 Gmail 帐户

  10. 10

    使用其他帐户向Azure添加存储容器吗?

  11. 11

    如何防止git自动使用其他帐户?

  12. 12

    同时配置了SSO后,无法使用Microsoft帐户添加其他共同管理员

  13. 13

    在其他活动中获取Google登录帐户

  14. 14

    使用其他国家/地区的银行帐户验证商家帐户

  15. 15

    php exec列出其他网络帐户

  16. 16

    如何通过其他帐户还原提交

  17. 17

    Cloudtrail 到 Cloudwatch 到其他帐户

  18. 18

    我可以使用其他帐户重新发布我的应用程序吗?

  19. 19

    可以通过twython使用来自其他帐户的appkey / secret key进行鸣叫吗?

  20. 20

    移动或添加Asp Identity 2或使用其他帐户管理系统

  21. 21

    使用EMR群集和其他帐户的s3文件运行作业

  22. 22

    如何使用PowerShell 2.0在其他域上解锁Active Directory帐户?

  23. 23

    Admob在其他国家/地区使用银行帐户

  24. 24

    使用Google App脚本从其他帐户发送电子邮件

  25. 25

    如何使用SAM模板cloudformation在其他AWS帐户中调用Lambda

  26. 26

    是否可以拥有IMAP帐户但使用其他SMTP服务器?

  27. 27

    可以通过twython使用来自其他帐户的appkey / secret key进行鸣叫吗?

  28. 28

    通过使用其他关键字段而不是记录ID将帐户列表导入sugarcrm

  29. 29

    我可以使用其他帐户重新发布我的应用程序吗?

热门标签

归档