问题标签 [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 回答
402 浏览

c# - Owin 中间件未使用测试服务器修改响应状态

我正在使用 Owin Test Server 编写单元测试,但它的行为不像我预期的那样。我无法弄清楚我做错了什么。我希望状态代码已被修改,就像我在 owin 管道的最后一步中所做的那样,但它没有生效,因此第二个断言失败。

0 投票
2 回答
2429 浏览

c# - Owin 中间件中的 MVC 错误处理

当控制器中抛出某些异常时,我想捕获这些异常并执行一些额外的逻辑。

我能够通过添加到全局过滤器列表中的自定义 IExceptionFilter 来实现这一点。

但是,我更喜欢在自定义 Owin 中间件中处理这些异常。我的中间件如下所示:

这段代码不起作用,看起来异常已经在 MVC 中被捕获和处理。有没有办法跳过 MVC 中的异常处理,让中间件捕获异常?

0 投票
2 回答
2746 浏览

interface - 为什么 ASP.NET Core 中的中间件需要特定的语义,而不是接口?

众所周知,ASP.NET Core 中的 Configure(类 Startup)方法的 IApplicationBuilder 需要特定的语义(让方法 'Invoke' 具有 HttpContext 类型的输入参数和 Task 作为返回值)。但是为什么它没有作为接口实现呢?我可以写类似的东西:

并注册它:

我们会得到一个运行时错误。当然,这是一件小事,容易被发现和修复,但它实现得如此粗糙,没有接口?

0 投票
1 回答
1414 浏览

asp.net-web-api - Web API 中的 OWIN CORS 问题

我正在使用 WebApi 并尝试使用 OWIN 添加基于令牌的身份验证。当客户端和服务在同一个端口时,它工作正常。但是当两者都在不同的服务器上时面临一个问题。我正在使用 Jquery Ajax 方法来调用令牌服务。这是我使用的代码示例。欧文代码:

提供者

WebApi 配置

单击登录按钮时将调用以下代码段。

得到以下问题。

XMLHttpRequest 无法加载http://localhost:53014/WagtokenService。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://192.168.2.175:3330 ”。

0 投票
3 回答
24188 浏览

c# - 如何以及何时调用/执行 OwinStartup 类中的 Configuration 方法?

在我问我的问题之前,我已经浏览了以下帖子:

  1. 重命名 ASP.NET 项目文件和问题中提到的所有帖子 后,无法让 OWIN Startup 类在 IIS Express 中运行。
  2. OWIN 启动检测
  3. web.config 中需要 OwinStartupAttribute 来纠正服务器错误 #884
  4. 未检测到 OWIN 启动类

这是我项目的文件夹布局:

在此处输入图像描述
目前没有控制器或视图。只是Owin Startup文件。


启动.cs


网页配置


我在项目中有以下参考Bootstrapper

  1. 微软.Owin
  2. Microsoft.Owin.Host.SystemWeb
  3. 欧文
  4. 系统
  5. 系统核心


更新: 忘记添加错误消息:

在此处输入图像描述


现在,

  1. 为什么它不工作?
  2. Owin Startup在一个非常基本的项目(如访问)中添加和使用类的分步过程是Home/Index什么?
  3. 如何以及何时Owin Startup调用/执行类中的配置方法?


更新: 2016 年 12 月 10 日

检查Project-Folder-Layout. 在Bootstrapper项目中,我有以下文件:
IocConfig.cs

现在我想IocConfig.RegisterDependencies()OWIN Startup课堂上执行。我在顶部做using BootstrapperStartup但它不工作。我的意思是我无法IocConfigStartup. 如何解决这个问题?

0 投票
0 回答
736 浏览

asp.net-mvc - Asp.net Web API 2 和使用集成 Windows 和基于令牌的混合身份验证

我有一个在 IIS 下运行的 asp.net Web API 服务器,到目前为止,它一直使用 Windows 身份验证,因为它只有在同一个域上运行的其他服务与之相关。

所以,在我的 web.config 我有以下设置......

有了这个,我可以在同一个域上使用浏览器(或服务)并访问我的服务。

现在我们要允许移动应用程序也可以连接。我们将使用基于的基于令牌的方案,到目前为止,要使用它,我需要关闭我的 Windows 身份验证web.config才能使用它。如果我像上面那样留在 Windows 配置中,我什至没有得到任何 Owin 中间,当我调用方法(或自定义过滤器)时,例如,se Postman 调用没有设置 Windows 身份验证的路由。

所以我的问题是

  • 如何允许任一身份验证,以便即使是浏览器(在同一域上)仍然可以调用路由并进行身份验证(通过协商),而且还允许其他客户端使用基于令牌的方案?另外(非常重要)我如何配置它web.config以允许两者?

提前感谢您的帮助!

0 投票
1 回答
1007 浏览

asp.net-web-api - Service Fabric 无状态 Web API 中的全局错误处理

我应该如何在无状态 Web API 中处理我的控制器方法的全局异常处理?我的目标是避免在我的控制器中出现冗长的 try/catch 语句。

我能够使用 IIS 托管的 Web API 使用我在我的WebAPIConfig.cs. 这在 OWIN 托管的 API(如在 Service Fabric 中)中不会立即生效。因此,在 SF 无状态 Web API 中,我创建了一个 Owin 中间件并在其中注册了该中间件,Startup.cs但它不起作用。在我的中间件代码的响应管道中忽略了 catch 块。

...

0 投票
1 回答
717 浏览

asp.net-mvc - 使用 OWIN 的基于区域的身份验证

我正在开发一个 MVC5 Web 应用程序。此应用程序有 2 个区域,“SU”和“应用程序”。每个区域都应独立进行身份验证。每个区域也有自己的登录页面。
我正在使用OWIN对用户进行身份验证。
现在的问题是,我无法CookieAuthenticationOptions LoginPath根据用户请求的区域设置 owin。
例如,如果用户请求http://example.com/su/reports/dashboard,我应该能够将它们重定向到http://example.com/su/auth/login
同样,对于“应用”区域,如果用户请求http://example.com/app/history/dashboard,我应该能够将它们重定向到http://example.com/app/auth/login

我想避免使用自定义属性,因此尝试了以下代码,但它总是重定向到根登录路径,即http://example.com/auth/login

我是在遵循正确的方法还是有其他方法可以实现相同的目标?谢谢!

0 投票
0 回答
1654 浏览

asp.net - 使用 OWIN 中间件 Web API 发送响应


我正在尝试在我的 Web APi 2 项目中自定义访问令牌 json 对象。我已经成功地做到了。但我无法弄清楚请求失败的情况。

这是我的自定义回复:-
{ data: {}, success: 0, message: "failed" }

以下是GrantResourceOwnerCredentials继承的ApplicationOAuthProvider方法OAuthAuthorizationServerProvider


和中间件类:-

我得到的是: -

如您所见,这是无效的 json。

任何帮助,将不胜感激。谢谢!

0 投票
0 回答
440 浏览

c# - 无法为单元测试引用目标 Web 应用程序项目

我使用空的 Web 应用程序模板在 VS2015 中创建了一个 .NET Core Web 应用程序。它针对完整的框架 4.6.1。它适用于我在许多其他网络应用程序中使用的中间件。我按照此处的说明进行操作,当我将中间件与另一个 Web 应用程序集成时,它就可以工作。

现在我想为它编写一些单元测试,所以我创建了一个针对相同框架的单元测试项目(使用测试项目模板)。然后我引用了具有我要单元测试的中间件类的项目。但是当我尝试在我的单元测试方法中使用中间件类时,VS 会抱怨说它找不到它,即使我使用完全限定的命名空间键入。事实上,Intellisense 并没有在目标项目中引入任何类。如果我尝试构建单元测试项目,它会返回一个错误:The type or namespace name 'xxxxMiddleware' could not be found (are you missing a using directive or an assembly reference?). 当我进入我的测试单元的引用并双击作为我的单元测试目标的项目时,VS 会弹出消息The project cannot be viewed in the object browser because it is unavailable or not yet built. Please ensure that the project is available and built.

我究竟做错了什么?

更新

如果我.exe为我的目标项目引用 ,它会设法解析我的中间件类。很奇怪!在我得到更好的答案之前,我现在可能不得不做这个解决方法。

更新 2

我说得太早了。添加.exe让我编译我的单元测试项目。但是如果我运行测试,我会收到一条错误消息System.BadImageFormatException: Could not load file or assembly '{assembly for the target of my test}' or one of its dependencies. An attempt was made to load a program with an incorrect format.。什么样的恶梦。