问题标签 [owin.security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - OWIN 授权代码流始终返回“invalid_request”(400 错误请求)
我正在尝试将授权代码流添加到基于 OWIN 的应用程序中。
我的设置是:
启动.cs
MyAuthorizationCodeProvider.cs
虽然密码授予流程和刷新令牌流程一样有效,但授权代码流程总是"invalid_request"
在我请求 HTTP GET 时返回
我什至无法调试我的MyAuthorizationCodeProvider
(创建/接收方法中没有断点命中)
我肯定错过了一些大事:-)但我不知道是什么....
asp.net - webapi service1 的 access_token 问题被其他 webapi 服务接受
出于测试目的,我创建了两个具有相同身份验证代码的 webapi 服务,如下所示。通过使用“邮递员”工具从 webapi 服务 1 发出 access_tokenhttp://localhost:53396/token
并复制它。
在工具中打开一个新选项卡Postman
以访问 webapi 服务 2 的控制器方法http://localhost:49489/api/values
,添加Authorization
标头并传递 webapi 服务 1 发出的复制令牌
bearer Ihqbo6s16BOtKOMqIPYIKbv_N616MAg2X5exa9eLDQPtaTxa5Ucy7lB_oOkyutaWpBFSpIdomhza2pB3ca6gxY3QgOANG7rhPBnxA74EcQYsLGpHJVqXusmTmJ_CpXj9k00e_vngobyBMU3Dqpoxm35lD7vgL27JG6WXhUZ-qo8u6IzzaXliP2A25-pTVv1mRjQGCGGumisDssii0GUZ4K0RsAoq852x8UFawUOZUg8
然后点击“发送”按钮,webapi 服务 2 接受令牌并返回结果!我不应该被服务 2 接受,因为这不是由该服务(服务 2)发布的。
API调用结果
请让我更正我在这里做错的事情,好像发生这种情况之后,任何人都可以从他们的服务中生成一个令牌并使用相同的令牌来访问其他 Web api 服务。
以下是我的 webapi 服务中的身份验证相关代码。
启动.cs
WebApiConfig.cs
ApplicationOAuthProvider.cs
值控制器.cs
网页配置
c# - Owin.Security.Providers - OpenIDAuthenticationMiddlewareBase 派生类声明 FieldNotFoundException
使用 Nuget 包Owin.Security.Providers.OpenIDBase 2.1.1
和-DLLsOwin.Security.Provides.OpenID 2.24.0
版本2.0.0.0
。
我正在派生我自己的提供程序 - 即MyOwnAuthenticationMiddleware : OpenIDAuthenticationMiddlewareBase<MyOwnAuthenticationOptions>
,并将其IAppBuilder.Use()
作为标准启动的一部分传递给。
这可以在我自己的机器上编译并运行良好 - 经典的开发人员系列。
但是,当在 Microsoft Visual Studio Online 的构建服务器(Hosted 2017)上构建时,它会构建,但在启动时会引发运行时错误:
字段HTTPClient
(a System.Net.Http.HttpClient
) 显然无法在派生的泛型类中找到 - 它是 的成员OpenIDAuthenticationMiddlewareBase
,在活记忆中没有改变。
我在想构建服务器必须链接到不同的OpenIDAuthenticationMiddlewareBase
,但错误消息中的完整规范名称另有说明。
由于正在进行的 .NET Framework/.NET Standard DLL 地狱,我收到了相当多的警告 - 一个与不同版本的 .NET 相关System.Net.Http
,我也将其作为 Nuget 包。这可能是相关的吗?
在一个不相关的注释上 - 有没有其他人觉得 Nuget 依赖项和令人眼花缭乱的 .NET Framework/Standard/Core 版本控制数组的组合刚刚重新创建了 .NET 本来应该缓解的同一个 DLL 地狱?
c# - OpenID Connect AllowedRedirectUris 为空,导致 IdentityServer4 上出现“无效的 redirect_uri”
我在 .NET Core 项目上有一个正在运行的 IdentityServer4,我正在尝试使现有的 .NET Framework Web 应用程序成为该服务器的客户端。
该项目正在使用Microsoft.Owin.Security
,并在Startup.cs
我设置身份验证设置。
但是,当请求发送到 IdentityServer 时,AllowedRedirectUris
参数只是一个空数组,因此RedirectUri
参数与该空数组中的一个不匹配,从而导致invalid redirect_uri
错误。
这是Startup.cs
现有项目的:
这是在日志记录中找到的从该配置生成的请求:
那么有谁知道我可以如何使AllowedRedirectUris
包含给定的内容RedirectUri
,以便我的 IdentityServer4 接受请求?
更新:这是 IdentityServer4 项目中的客户端对象:
Update2:这是Startup.cs
IdentityServer4 的: