如何解决dotnet 核心身份验证 OpenIdConnectProtocolException:消息包含错误:OneLogin
我按照 OneLogin 网站链接中的 OneLogin dotnet 设置步骤进行操作:https://github.com/onelogin/openid-connect-dotnet-core-sample
我添加了 http://localhost:5000/signin-oidc 作为重定向 URI,它似乎有效。
然而,一旦我被路由到 OneLogin 并输入我的用户名和密码,我就会被带到这个错误页面......
生成的错误页面 dotnet 未处理异常
这是我的 Startup.cs 的副本
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddSingleton<IDBService,DBService>();
// Allow sign in via an OpenId Connect provider like OneLogin
services.AddAuthentication(options => {
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(options =>
{
options.ClientId = //private; pulling client id from settings
options.ClientSecret = //private; pulling secret from settings
options.Authority = //private; endpoint is company based onelogin
options.ResponseType = "code";
options.GetClaimsFromUserInfoEndpoint = true;
}
);
}
public void Configure(IApplicationBuilder app,IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseAuthentication();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
我很困惑。因为在 OneLogin 方面,我从登录中获得了所有成功,但是当它路由回我在 http://localhost:5000 中的应用程序时,我收到了该错误。任何帮助将不胜感激我已经被难住了一段时间。此外,错误页面顶部的 URL 是 http://localhost:5000/signin-oidc
解决方法
问题已解决。它实际上是在 OneLogin 端而不是在 .Net 代码中。在 OneLogin 中使用 .Net 设置您的应用程序时,请务必将令牌端点身份验证方法更改为 POST 而不是默认的 Basic。能够使用 OneLogin 上网并在大约 15 分钟内搞定。这在我发布的 .Net 示例中也有说明。存在通信问题,因为我实际上并未为此应用设置 OneLogin。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。