问题标签 [owin-middleware]

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.

0 投票
1 回答
1065 浏览

.net - 无法使用 OAuthBearerAuthenticationProvider 类中的 ValidateIdentity 中的自定义消息覆盖响应正文

我尝试设置自定义错误消息以从我的 OAuthBearerAuthenticationProvider 的“ValidateIdentity”代码返回。但我得到的只是

这是我的代码:

是否有可能覆盖标准错误?

0 投票
2 回答
1878 浏览

unit-testing - Owin.TestServer 测试需要认证的中间件

我有一个中间件方法,需要解析context.Authentication.User.Identity.Name才能正确执行。但是,在编写单元测试时,这些属性显然为空,因为没有发生登录。我没有在这个中间件中使用 Oauth 或任何相关的身份验证(除了明显的 name 属性),因为它应该在另一个中间件的其他地方处理(以促进我正在开发的组件的重用/灵活性)。有没有办法模拟/伪造这个值,以便我可以运行我的测试?我已经尝试了我能想到的一切来伪造登录,但我只是停留在这一点上。要清楚中间件需要的值不是 webapi 调用等。

0 投票
1 回答
2873 浏览

asp.net-mvc - ASP.Net MVC:如何通过owin中间件处理会话开始和结束

这是会话开始和结束的示例代码。

从 MVC6 将没有 global.asax 文件。那么如何通过owin中间件处理会话开始和结束。如果可能的话,与代码示例讨论。谢谢

0 投票
2 回答
1142 浏览

asp.net-mvc - OwinMiddleware 不保留 .net 4.6 中的文化变化。*

我有一个运行良好的 owin 文化中间件。

它只是根据 url 改变文化。这在 4.5.* 中完美运行。现在,当 runtiome 更改为 4.6.1 时,文化不再保留,因此它不起作用。

我可以在一个非常简单的解决方案中重现它,该解决方案只有这个中间件来模拟文化变化

我将中间件附加到它执行的管道但是当我调用一个动作时控制器没有文化(就像它在.net 4.5.1中一样)

我已经在这里发布了,但是支持真的很慢。每两周一个答案,然后似乎他们还没有尝试过他们写的东西:-(

https://connect.microsoft.com/VisualStudio/feedback/details/2455357

0 投票
1 回答
1239 浏览

c# - Mvc5 ExternalLoginCallback:“await AuthenticationManager.GetExternalLoginInfoAsync()”因“序列包含多个元素”而失败

为什么我通过外部登录回调不断收到此错误。这就是正在做的事情。

进口

我的AccountController.cs

我的 Startup.cs 类

这是堆栈跟踪:

我的代码中的哪一点 查看打印屏幕

google、twitter 和 facebook 的这种行为是相似的。外部身份验证似乎进展顺利,但回调抛出此异常。我感谢提供的任何建议。

0 投票
0 回答
451 浏览

c# - Microsoft Owin 响应正文编码

在我的文章OwinMiddleware中,我只是写给正文:

我在 Fiddler 中得到的原始响应是:

而 Fiddler 正在说这个编码(带有一条消息说请点击这里解码)

单个字母和数字不是我的。我用大括号写了/hey/thereandthereHey Thereand 。Guid

如何获得纯文本响应?

0 投票
1 回答
3432 浏览

asp.net-core - 如何使用 [Authorize] 属性集成测试 ASP 5/Core Web API

我目前有一个 ASP 5/ASP Core Web API,我需要使用 OWIN 测试服务器进行集成测试。

问题是我在生产中使用 IdentityServer 作为授权服务器,我不想将授权包括在我的集成测试中。

这是 API 的 Startup.cs:

我已经尝试注册一个特殊的测试中间件,理论上应该验证并设置声明主体。但是在 OWIN 管道的某个地方,身份验证被拒绝,我得到一个 401 错误代码。

这就是我设置 OWIN 测试服务器的方式:

这是我的习惯AuthenticatedTestRequestMiddleware

主体已设置并存在于具有给定 ID 的数据库中,但在我调用后next(context)我得到一个401 Unauthorized结果。

如何在为 HttpRequest 设置当前用户的同时成功伪造用户身份验证并绕过 [Authorize]?

更新: 如果我像这样注册自己的 CookieAuthentication 处理程序:

我进入302 Redirect登录页面。但是,当我在 TestMiddleware 中使用它时,登录工作正常await context.Authentication.SignInAsync(TestingCookieAuthentication, claimsPrincipal)

0 投票
1 回答
4883 浏览

c# - 创建将自定义令牌交换为 .Net 身份验证 Cookie 的 Owin 身份验证提供程序

我正在尝试在 2 个 .Net 应用程序之间创建类似 SSO 的解决方案。Net 应用程序 1 有一个自定义令牌生成器和端点来验证返回用户信息的令牌。

.Net 应用程序 2 使用 Owin 进行保护,是一个典型的独立应用程序,用户可以使用密码和用户名直接登录。

我创建(基于Passion for Coding BlogGithub)一个自定义 Owin 提供程序,它将在 Authorization 标头中查找令牌或作为来自链接的查询参数,用户将单击来自 .Net App 1 的链接并发送到.Net App 2 查询字符串中的令牌,如 GET (我知道这不安全,我们最终将使用 OpenID 来实现它的价值,我们只需要它来进行演示)。我能够让令牌验证它并创建一个身份并进行身份验证我只是无法让提供者创建一个.Net Auth Cookie,以便对后续请求进行身份验证并且不会给出 401 错误。

处理程序文件:

中间件文件:

选项文件:

扩展文件:

启动文件

我还尝试仅将自定义提供程序用于提供的标准

这是我尝试过的插件/提供程序的代码,只要没有 401 错误,我就没有偏好:

提供者

和 AccessTokenProvider

0 投票
2 回答
205 浏览

c# - 添加 log4net 配置时出现 CORS 问题

语境:

我有一个带有控制器和动作的简单 Web API 项目。在每个请求的标头中,我添加了一个授权令牌。一切都按预期工作。我可以根据某些凭据请求令牌,并使用它成功发出 HTTP 请求。

问题: 当我在 web.config 中添加以下内容时:

我收到以下错误:

如果我删除 log4net 的配置,一切都会按预期工作。

注意:我在 web.config 中没有在请求中添加标头的任何设置。

Startup.cs是我指定的项目中唯一的点:

app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

问题: log4net 配置与预检请求有何关系?(基于我对 ASP.NET 框架的有限了解,我会说这是无稽之谈)。有没有我错过的微妙之处?

0 投票
1 回答
1310 浏览

c# - 从 IOwinContext 获取路由模板

我正在寻找从请求中获取路由模板。我正在使用 OwinMiddleware 并覆盖接受 IOwinContext 的 Invoke 方法。

给定请求 URL:http ://api.mycatservice.com/Cats/1234

我想得到“ Cats/{CatId}

我没有成功尝试使用以下方法对其进行转换:

以供参考:

这是一篇关于如何使用 HttpRequestMessage 执行此操作的帖子,我已为另一个项目成功实施