首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Blazor Web程序集和标识服务器4

Blazor Web程序集和标识服务器4
EN

Stack Overflow用户
提问于 2020-09-28 19:52:24
回答 1查看 150关注 0票数 0

我遵循本指南为我的Blazor应用程序实现了某种身份验证。我在某个服务器上运行了一个Identity server 4实例,它似乎是完全可操作的。

我的问题是,在上面的指南中,传递给标识服务器的returnUrl显然不是本地url。通过深入研究Identity Server的代码,我发现如果返回url不是本地的,它总是无法登录用户:

代码语言:javascript
复制
        public async Task<AuthorizationRequest> GetAuthorizationContextAsync(string returnUrl)
        {
            var result = await _returnUrlParser.ParseAsync(returnUrl);

            if (result != null)
            {
                _logger.LogTrace("AuthorizationRequest being returned");
            }
            else
            {
                _logger.LogTrace("No AuthorizationRequest being returned");
            }

            return result;
        }

DefaultIdentityServerInteractionService上面的代码中,ParseAsync()调用IsLocal(),这会导致result为null,这反过来会在我的日志中生成以下内容:

代码语言:javascript
复制
2020-09-28T19:37:25.932782009Z [2020-09-28T19:37:25.9324455+00:00] [VRB] [] [IdentityServer4.Services.OidcReturnUrlParser] returnUrl is not valid
2020-09-28T19:37:25.932807561Z [2020-09-28T19:37:25.9325314+00:00] [VRB] [] [IdentityServer4.Services.OidcReturnUrlParser] No AuthorizationRequest being returned
2020-09-28T19:37:25.932817324Z [2020-09-28T19:37:25.9325559+00:00] [VRB] [] [IdentityServer4.Services.DefaultIdentityServerInteractionService] No AuthorizationRequest being returned

有人能指给我看我在这里不懂的地方吗?我能提供更多的信息吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-29 18:27:04

我不确定您的问题是否与LocalUrl有关,如果您遵循guid,您似乎设置了错误。

如果您遵循默认设置,那么在IDS4上进行客户端配置就足够了:

代码语言:javascript
复制
new Client
                {
                    ClientId = "wasmappauth-client",
                    ClientName = "Blazor Webassembly App Client",
                    RequireClientSecret = false,

                    AllowedGrantTypes = GrantTypes.Code,
                    RequirePkce = true,

                    AllowedCorsOrigins = { "http://localhost:5005" },
                    RedirectUris = { "http://localhost:5005/authentication/login-callback" },
                    PostLogoutRedirectUris = { "http://localhost:5005/authentication/logout-callback" },

                    AllowedScopes = {"openid", "profile"},
                }

这是我的博客文章,我解释了同样的事情,但用更简单的措辞:https://nahidfa.com/posts/blazor-webassembly-authentication-and-authorization-with-identityserver4/

编辑:关于本地URL的检查,它是it 基于IDS4的设计

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64108742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档