【问题标题】:Url.Content not working when using under .net core 3.1 &在 .net core 3.1 & 下使用时,Url.Content 不起作用
【发布时间】:2021-04-09 18:50:35
【问题描述】:

我正在尝试遵循以下有关 SAML 实施的文章,并且我对 .net 核心和 SAML 非常陌生 https://developer.okta.com/blog/2020/10/23/how-to-authenticate-with-saml-in-aspnet-core-and-csharp

将代码添加到 AuthController.cs 时,登录方法出现错误。在下面的代码 Url.Content 中给出错误“当前上下文中不存在名称 url”。还打包“使用 Okta_SAML_Example.Identity;”正在给出关于装配的错误,因为它不存在。

var binding = new Saml2RedirectBinding(); binding.SetRelayStateQuery(new Dictionary { { relayStateReturnUrl, returnUrl ?? Url.Content("~/") } });

想要设置上下文:我的 idp 将是内部组织 idp [它将由 org 中的不同团队配置,现在他们希望我提供我想要的属性作为响应] 所以它在代码中的确切位置将被引用因为我也没有在代码和 xml 示例中看到 IDP 参考网址。请在早期帮助我作为需要指导。

【问题讨论】:

    标签: asp.net-core-3.1 okta itfoxtec-identity-saml2


    【解决方案1】:

    我怀疑您为什么会看到该错误,这不是我遇到的错误。 您可以尝试下载ITfoxtec.Identity SAML 2.0 code 并运行测试文件夹中的TestIdPCoreTestWebAppCore 示例。

    图书馆documentation

    可以在 appsettings.json 文件中配置 IdP,这里是来自 TestWebAppCore sample 的示例。最简单的方法是配置IdP metadata,无需进一步配置即可建立信任。

    【讨论】:

    • 您好安德斯,非常感谢您的回复。我再次工作,发现问题是将 .cs 文件放在文件夹结构而不是根目录下。现在它解决了。关于 IDP 元数据,根据您的建议,如果我没有任何 IDP 服务器/基础设施准备好,那么我可以使用“localhost:44305/metadata”控制器代码,它将作为 IDP 服务器发送一些响应?非常感谢!
    • 我的 appsettings.json 文件 .......... { "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "Saml2": { "IdPMetadata": "localhost:5001/metadata", "Issuer": "Okta_SAML_Example", //"SignatureAlgorithm": "w3.org/2001/04/xmldsig-more#rsa-sha256", " CertificateValidationMode": "None", //"ChainTrust", "RevocationMode": "NoCheck" }, "AllowedHosts": "*" }
    • 是的,“localhost:44305/metadata”是示例 IdP 元数据。 TestWebAppCore 示例公开了 IdP 可以使用的元数据 ("localhost:44306/metadata"),因此 IdP 拥有有关依赖方(您的应用程序)的所有详细信息。
    • 不知何故,我无法在本地构建 Testwebappcore 项目。我的 okta 示例代码处于构建状态,但是当我尝试单击登录时,在 URL 下出现错误“找不到此本地主机页面”:“localhost:1068/Auth/Login”。这意味着控制器没有被调用,也没有将我重定向到 IDP url。
    • 我的整体困惑是 1) 这个元数据要做什么?这是我的代码应该读取的来自 IDP 服务器的响应吗? 2) 我们在我的代码中配置 IDP 详细信息/url 的位置,这会将我重定向到我的组织 IDP 服务器以设置用户上下文。我想使用 Windows 身份验证。这在 aws 上是不可能的,并且不允许 AD 集成。我希望我的 ORG idp 应该向我返回有关登录用户的更多详细信息,例如他的 emp id/login id、AD 组等。抱歉有点困惑
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 2023-03-02
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    相关资源
    最近更新 更多