【问题标题】:Why doesn't IdentityServer consider the url valid?为什么 IdentityServer 不认为 url 有效?
【发布时间】:2021-05-21 14:19:13
【问题描述】:

我的 redirectUrl = "https://localhost:5000/download-product2/%2Fdbforge%2Fsql%2Fsql-tools%2Fsqltoolsstd.exe/viktorbl@devart.com"

我有一个代码:

private readonly IIdentityServerInteractionService _interaction;

public void Login(LoginModel model) 
{
    if (_interaction.IsValidReturnUrl(model.ReturnUrl)) 
    {
        // do something
    }
}

IdentityServer 认为我的 redirectUrl 无效。 为什么会变? 请帮帮我

【问题讨论】:

    标签: c# asp.net-core identityserver4


    【解决方案1】:

    要让任何人以特定的方式回答这个问题,您需要更加具体。

    你遇到了什么错误?

    您是否在 localhost 上运行 IdentityServer?

    您可以从浏览器访问该链接吗?

    "localhost" 在您的 URL 中表示该资源托管在您的计算机上。如果您的 IdentityServer 实例未托管在同一台机器上,那么它将无法连接到它(如果它使用连接检查进行验证)。但是您仍然可以从同一台机器上的浏览器访问它。

    但是,IdentityServer 也可能有特殊的逻辑应用于 URL 验证。也许它不喜欢 URL 中的“.exe”位。这是一种相当常见的反恶意软件做法,将此类 URL 视为无效。也许您不能将文件下载链接用作重定向(这可能基于 URL 结构)。

    找出问题原因的最佳方法是自己查找验证逻辑。 IdentityServer 是开源的,其代码可在 GitHub 上获得。您可以选择您正在使用的版本,在本地克隆存储库并查找 URL 验证逻辑。

    查找验证逻辑所在位置的最简单方法是在存储库中搜索您收到的错误消息,然后追溯代码以找出生成此消息的原因。

    所有版本的 IdentityServer 的代码都可以在这里找到:

    https://github.com/IdentityServer

    【讨论】:

      猜你喜欢
      • 2021-08-29
      • 2022-11-15
      • 2011-01-11
      • 2012-03-20
      • 1970-01-01
      • 2020-03-09
      • 2018-11-24
      • 2015-01-11
      • 2018-02-12
      相关资源
      最近更新 更多