这个问题可能是因为未正确设置OAuth的回调路径(Callbackpath)而导致的。
解决方法可以尝试使用以下代码(其中的Callbackpath根据具体需求进行修改):
services.AddAuthentication(options => { options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultChallengeScheme = "AuthScheme"; }) .AddCookie(options => { options.AccessDeniedPath = "/Account/AccessDenied"; options.LoginPath = "/Account/Login"; }) .AddOAuth("AuthScheme", options => { options.ClientId = Configuration["OAuth:ClientId"]; options.ClientSecret = Configuration["OAuth:ClientSecret"]; options.CallbackPath = new PathString("/signin-authscheme"); options.AuthorizationEndpoint = Configuration["OAuth:AuthEndpoint"]; options.TokenEndpoint = Configuration["OAuth:TokenEndpoint"]; options.SaveTokens = true; options.Events = new OAuthEvents() { OnCreatingTicket = async context => { // do something } }; });
在这个示例中,使用了.AddOAuth方法,其中Callbackpath被设置为'/signin-authscheme”,这是一个自定义路由的示例。
具体来说,可以通过以下方式修改这个示例,以使用自己的Callbackpath:
options.CallbackPath = new PathString("/your-callback-path");
这样,就可以成功定义OAuth的回调路径,避免获取404错误。