【发布时间】:2017-06-09 15:11:37
【问题描述】:
我在 Visual Studio 2017 中创建了一个新的 .NET Core MVC 应用程序并启用了多租户身份验证。
我已经完成了配置(ClientId、Authority 等),但是当我调试应用程序时,Startup.cs 中出现异常,特别是 app.useOpenIdConnectAuthentication 方法。
给出的例外是
System.ArgumentException: 'value' 中的路径必须以 '/' 开头。
对于 C# 和 .NET Core,我有点新手,所以我不确定我是否遗漏了一些明显的东西。主要的症结在于调试器使用参数“值”所指的内容,因为我在代码中看不到任何提及它的内容。除了将配置项添加到 appsettings.json 之外,除了 Visual Studio 生成的默认模板之外没有任何变化。
【问题讨论】:
-
如果您在问题中包含您的 startup.cs 代码将会很有帮助。
value是 参数的名称,而不是代码中的名称。 -
您是否在身份验证配置中配置了类似 LoginPath 或类似路径的内容?这些路径/路线应以
/开头 -
可能是 OpenIdConnectAuthenticationOptions 属性之一中的无效 URL。正如#Amy 所说,您需要发布代码。
-
谢谢大家,终于搞定了。所有文档都建议 CallbackPath 应该是不带斜杠的“signin-oidc”,但将其更改为“/signin-oidc”似乎已经解决了。
-
仅供参考。如果我有以下条件: context.Request.Path == "login.html" 则会引发异常。但是,如果我这样做: context.Request.Path == "/login.html" 则不会引发异常。我只是在玩 app.Run(async (context) => { ... put conditions here ... } 并在我想知道发生了什么时注意到了问题。
标签: asp.net-mvc .net-core openid-connect