问题标签 [katana]
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 - 无法在 Mono 3 上的 xsp 上运行 asp.net 4.5 应用程序
我已经从源代码(tarball)构建了 Mono 3.0.2,并从最新的 tarball 和 Github 上的最新版本构建了 XSP,但是我无法使用 .net 4.5 运行相对简单的 asp.net 应用程序,因为它看到“ web.config 中的 targetFramework="4.5"' 无效。构建应用程序并运行控制台 .net 4.5 应用程序工作正常。
这是有问题的 web.config:
这是 xsp4 抛出的异常:
以及有关版本/配置的一些信息:
如果我从 web.config 中删除 targetFramework 元素,那么错误就会消失,但我只会得到 404,因此没有一个 http 模块被连接。
有任何想法吗?有人告诉我 xsp4 应该可以正常工作,但据我所知,它似乎根本没有更新到可以处理 4.5。
c# - 从 OWIN 中间件更改响应对象
我的 OWIN 中间件是这样的。(框架是 ASP.NET Web API)。
问题:
这是推荐的做法
OwinMiddleware
吗?我看到在 Katana 源代码中,一些中间件类派生自OwinMiddleware
,而有些则没有。我可以看到请求标头没问题。在我的中间件中设置响应头或状态码
Next.Invoke
对返回给客户端的响应没有影响。但是,如果我在Next.Invoke
调用之前设置了响应标头或状态,则带有标头的响应和我设置的状态将返回给客户端。设置这些的正确方法是什么?
nancy - OWIN 托管的 Nancy 模块调用 RequiresAuthentication 发回 401
我有一个像这样的 Nancy 模块。
OWIN 中间件将对象的User
属性设置为具有经过身份验证的身份。如果我在模块内部中断并看到 Thread.CurrentPrincipal,它被正确设置为我之前在中间件中设置的值。然而,发回 401。顺便说一句,模块内的上下文为空。我做错了什么?OwinRequest
ClaimsPrincipal
ClaimsPrincipal
RequriesAuthentication
我使用的一些感兴趣的 NuGet 包是
nancy - 使用 Owin、Katana 和 Nancy 实现自定义 FormsAuthenticationProvider
我正在实现一个自定义FormsAuthenticationProvider
,我得到一个中间件转换错误。
我的堆栈包括
- 欧文
- 武士刀
- 南希
我的具体问题是关于在哪里寻找关于如何实现自定义的示例的任何建议FormsAuthenticationProvider
?除非有人能发现我的问题。
我的实现看起来像:
启动.cs
如果我删除app.UseFormsAuthentication(...)
应用程序运行没有错误。
全栈跟踪
可执行源代码(只需 F5 即可立即收到错误消息)
c# - 将 HttpRequestMessage 转换为 OwinRequest 并将 OwinResponse 转换为 HttpResponseMessage
我有一个 Web API 消息处理程序MyHandler
,我想在 OWIN 管道中作为中间件运行。所以像这样配置处理程序。
Handler 非常简单,什么也不做。
我在里面放了一个断点SendAsync
,它确实断了,但是下面的base.SendAsync
炸弹无声无息,我看到了A first chance exception of type 'System.InvalidOperationException' occurred in System.Net.Http.dll
。
我可以很容易地添加MyHandler
它config.MessageHandlers
,它会在 Web API 管道中完美运行,但这不是我想要做的。我想MyHandler
在 OWIN 管道中运行。这可能吗?它应该是。UseHttpMessageHandler
否则,我猜,有扩展方法没有意义。只是我想不出一种方法来做我想做的事。
asp.net-web-api - OWIN OnSendingHeaders 回调 - 读取响应正文
这个问题与优素福的出色回答有关。我喜欢OnSendingHeaders
回调。我现在可以添加响应标头而不必担心切换流。无论如何,这是我的问题。是否可以像这样读取回调内的响应正文。
我想从回调中调用的方法是依赖于HttpResponseMessage
并且不想更改它们的类的一部分。
如果我在管道处理开始之前将响应主体设置为内存流(正如 Youssef 在链接答案中最初建议的那样),我可以让它工作。有没有更好的方法在回调中做到这一点而不是那个?
编辑:
这个可以吗?
asp.net-web-api - 来自其他路由的 WebAPI 路由消息处理程序被调用
我目前正在使用在 OWIN/Katana 上运行的 WebAPI。我定义了两个消息处理程序:
CorsHandler
:允许 CORS(跨域资源共享),将应用于所有 HTTP 消息HmacAuthenticationHandler
:检查用户是否通过身份验证,仅应用于需要身份验证的路由。
我HttpConfiguration
将这样配置:
如果我通过 AJAX 调用调用 Web API 方法,这需要身份验证(例如“127.0.0.1:80/test/id”),一切都会按预期工作。消息处理程序将被调用,如下所示:
有效的用户凭据:
客户端 -> CorsHandler -> HmacAuthenticationHandler -> TestController (get(id)) -> CorsHandler -> HmacAuthenticationHandler -> 客户端 (OK-200)
无效的用户凭据:
客户端 -> CorsHandler -> HmacAuthenticationHandler -> CorsHandler -> HmacAuthenticationHandler -> 客户端(未经授权的请求 403)
但是,如果我通过 AJAX 调用调用不需要身份验证的 Web API 方法(例如“127.0.0.1:80/login”)。HmacAuthenticationHandler 将在“返回客户端的路上”被调用,即使它没有分配给这个路由:
客户端 -> CorsHandler -> AccountController(登录) -> CorsHandler -> HmacAuthenticationHandler -> 客户端 (OK-200)
为什么会在HmacAuthenticationHandler
“公共路线”上(响应期间)被调用?奇怪的是它不会影响响应,客户端仍然得到 OK-200。
更新
我创建了一个示例项目并用假的替换了所有内部接口/实现,可以在 BitBucket 上找到并下载代码:
mono - Mono/XSP 上的 Microsoft.Owin.Host.SystemWeb
我已经设法使用HttpListener host让 Katana/OWIN 在 Mono 上运行。
我现在正在尝试使用Microsoft.Owin.Host.SystemWeb
Mono 和 XSP4。我正在使用在这个 repo中找到的代码。它有一个Startup
类:
在web.config中,我们将Configuration()
方法定义为启动应用程序的方法:
这在 Visual Studio 中调试时效果很好,但在 Mono 上却不行。我猜这是某种不会被触发的程序集加载钩子。有什么建议么?
这是一个运行代码的应用程序:http: //peaceful-forest-6785.herokuapp.com/
visual-studio - 如何按在 Visual Studio 2013 中创建的日期显示/排序单元测试?
我是一个相当大的代码库的新手(在我的例子中是Project Katana源代码)。
我正在研究项目中的单元测试,以便熟悉代码库(解决方案中大约有 554 个测试)。
由于有大量的单元测试,我想按照它们的创建顺序来研究/审查它们。
我似乎无法在测试资源管理器中找到按时间顺序排列单元测试的方法。快速的互联网搜索一无所获。
有什么建议么?
编辑:与此同时,我将以另一种顺序查看单元测试:使用库,然后查看与我要使用的方法相对应的测试方法。从项目的消费者的角度来看,我相信这可能是一种更有效的方式。
asp.net - OWIN 和 Katana,为什么要将应用程序与服务器解耦?
我不太明白这一点.. 能够自托管应用程序确实很酷,而且这可能会很好,因为如果 IIS 出于任何原因出现故障......那么您的所有网站都会出现故障.. 但如果它们是自托管的托管然后他们在自己的环境中过着自己的生活..我想这很好..但我仍然没有得到这个优点..我是否通过使用 owin 在 IIS 管道中跳过了很多不必要的东西,这可以加速应用程序,或者..什么是实际的优点?(如果它们很多,你不需要列出所有它们:),但是我明白你为什么要在 IIS 上使用 OWIN 和 Katana)
提前致谢!