问题标签 [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.

0 投票
13 回答
54909 浏览

asp.net - 在上下文中找不到 owin.Environment 项

微软最近推出了新的 ASP.NET 身份 - 替代旧的(简单)会员。不幸的是,我不能在我的旧项目中使用这个新的会员系统,因为它会抛出 System.InvalidOperationException: No owin.Environment item was found in the context。这是一个已知的错误,但微软对此问题保持沉默。重现此错误的最简单方法 - 它是在 VS 2013 中创建一个新的 Web 应用程序(MVC、WebForms 或 WebApi - 无关紧要)(使用 Web Tools 2013 Preview Refresh),然后转到登录页面。它会起作用的。然后将应用程序中的命名空间更改为原始命名空间以外的任何其他名称,登录页面将引发该错误。将名称空间改回原始名称(您在创建项目时使用的名称)将解决此问题。

看起来 .net 存储了与原始命名空间相关的东西,但我找不到什么和在哪里,它不在项目文件夹中。我知道 stackoverflow 不是一个错误报告的地方,我只是希望有人已经找到了解决这个问题的方法,或者参与 ASP.NET Identity 开发的人会看到这一点。

0 投票
0 回答
1279 浏览

.net - ServiceStack - Katana 和 OWIN

我基本上想在一个 httplistener 上运行多个应用程序。如何使用 owin 和 servicestack 配置 katana。此外,有谁知道我如何将其与现有的 Web api、MVC 应用程序集成。

我想使用 katana 在控制台应用程序中处理我的所有身份验证,然后在其上托管多个 Web 应用程序。ServiceStack 控制台应用程序、现有的 Web api 应用程序、现有的 ASP.NET MVC3 应用程序,我也想将 SignalR 放入其中。全部在同一个 httplistner 上,然后根据 URL 相应地转发我的请求。

谁能告诉我如何做到这一点?如果有更好的方法,那就是 Katana。请指出我正确的方向。

0 投票
2 回答
11992 浏览

cookies - Owin cookie身份验证设置cookie未保存在浏览器中

我正在此堆栈上构建自托管 Web 服务器:OWIN Nancy Web Api 2

我正在使用来自 Katana 的 Microsoft.Owin.Security.Cookies 进行类似表单的身份验证。我得到了 Set-Cookie 标头作为响应,但 cookie 没有被保存,也没有包含在下一个请求中。所以有什么问题?我做错了什么?

欧文启动:

控制器代码:

响应标头:

0 投票
1 回答
1753 浏览

owin - Katana Webserver 找不到 clientSecret

我下载了 katana 项目,想在沙盒项目中尝试客户端/服务器。

我在 for OAuthValidateClientAuthenticationContext 遇到了一个问题:

clientSecret 为空,因此以下内容不验证客户端。

0 投票
1 回答
1101 浏览

c# - Unity Dependency Resolver 不能与 Katana 和 WebAPI 一起使用?

我为 Katana 中托管的 WebAPI 尝试了 Unity 3。

我收到一个异常,即 system.web.http 无法在启动时加载。

有人做过这个工作吗?

0 投票
1 回答
3455 浏览

c# - 使用基本身份验证将 cookie 添加到 Katana 托管 WebAPI

我已经为 Katana 实现了一个基本身份验证中间件(代码如下)。

(我的客户端托管在跨域上,然后是实际的 API)。

如果满足以下条件,浏览器可以跳过预检请求:

请求方法为 GET、HEAD 或 POST,并且应用程序没有设置除 Accept、Accept-Language、Content-Language、Content-Type 或 Last-Event-ID 之外的任何请求标头,以及 Content-Type 标头(如果设置)是以下之一:application/x-www-form-urlencoded multipart/form-data text/plain

在 javascript 中,我在服务器接受请求的所有请求上设置身份验证标头(使用 jquery,beforeSend)。这意味着上面将针对所有请求发送选项请求。我不想要那个。

我该怎么做才能解决这个问题?我的想法是在他通过身份验证后将用户信息存储在 cookie 中。

我还在 katana 项目中看到了 Microsoft.Owin.Security.Cookies - 这可能是我想要的而不是我自己的基本身份验证吗?

BasicAuthenticationMiddleware.cs

BasicAuthenticationHandler.cs

Options.Provider.AuthenticateAsync 验证了用户名/密码,如果通过了身份验证,则返回身份。

规格

我要解决的是:我有一个使用 N Azure 云服务部署的 Owin 托管 WebAPI。它们中的每一个都链接到一个包含用户名/哈希密码列表的存储帐户。

从我的客户端,我将这些 N 服务中的任何一个添加到客户端,然后可以通过他们的 webapis 与它们通信。它们被身份验证锁定。第一步是使用上面提供的列表通过基本身份验证方案验证用户。在那之后,我希望它很容易添加其他身份验证方案,如 Owin、UseWindowsAzureAuthentication 等或 UseFacebookAuthentication。(我在这里确实有一个挑战,因为除了添加服务的跨域站点之外,webapi 没有 Web 前端)。

如果你擅长 Katana 并想在这方面与我一起工作,请随时给我发邮件至 pks@s-innovations.net。最后我也会在这里给出答案。

更新

根据答案,我做了以下事情:

我假设它必须处于 AuthenticationMode = Active 中,否则 Authorize 属性将不起作用?

我的 webapi 控制器中究竟需要什么来交换 cookie?

以上可以吗?

当前解决方案

我已将我的 BasicAuthenticationMiddleware 添加为主动,将上述 CookieMiddleware 添加为被动。

然后在 AuthenticateCoreAsync 我检查我是否可以使用 Cookie 登录,

所以我现在可以从 webapi 控制器交换用户名/传递给 cookie,我也可以直接使用基本方案进行不使用 cookie 的设置。

0 投票
1 回答
399 浏览

c# - Katana 中的 HttpListener 不发送响应

我正在编写一个非常基本的设置来托管一个基于 katana http Listener 的应用程序。

运行这个程序时,我可以访问端口 5000,它甚至在我编写的 owinMiddleWare 中到达了一个断点。但它的响应永远不会关闭,我无法在浏览器中获得响应。

我究竟做错了什么 ?

0 投票
3 回答
1555 浏览

asp.net - 关于 OWIN 管道

我有一个关于 OWIN 管道的简单问题。我非常了解这个规范的整个概念,但有些东西我还没有完全消化。

根据网上的几篇帖子,有一个 OWIN 管道,它由几个开发人员定义的模块(或中间件组件)组成,由 owin Host 构建。然后是服务器,它将侦听请求并将它们传递给 = 通过 OWIN 组件的管道。

我不完全理解的一点是为什么我们需要管道。例如,让我们想象在 StartUp 类中我们有类似的东西:

在上面的示例中,我们要求 OWIN 主机构建三个 OWIN 中间件组件的管道。据我了解,服务器会将请求(可能包含在字典中)转发到该管道中的第一个组件,然后该组件将执行一些任务并将其传递给下一个组件,依此类推。

我想知道为什么我们需要获取每个请求中涉及的所有组件;例如,如果我们只要求静态 html 页面,为什么不只打扰处理静态文件的组件呢?我的意思是为什么这样的请求需要 Web Api 的参与。

0 投票
1 回答
4116 浏览

http - OWIN 根据条件停止处理?

我的 OWIN Startup 类中有以下代码:

如果在 pipepart1 中出现我不喜欢的情况,我想在该中间件中为调用者编写自定义文本/纯文本响应,并且不要触发 pipepart2 或 pipepart3。CodePlex 上的 BranchingPipelines 示例显示了很多东西,但并非如此。

是否可以根据早期的中间件评估来缩短流程或以其他方式停止中间件的 OWIN 处理?

0 投票
1 回答
1345 浏览

http-headers - OWIN 更改响应服务器身份?

我在链的末尾有一个简单的 OWIN 中间件,我正在设置 Server 标头值,如下所示:

但这似乎只会改变标题

将服务器标头值设置为自定义的正确方法是什么,而不包括“Microsoft-HTTPAPI/2.0”部分?

谢谢。