问题标签 [owin]

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 回答
1753 浏览

owin - Katana Webserver 找不到 clientSecret

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

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

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

0 投票
1 回答
1369 浏览

asp.net-web-api - 是否可以在同一个应用程序中同时使用 NancyFx 模块和 WebAPI 控制器?

我有一个使用 NancyFx 的自托管 Owin HttpListener 应用程序。

我想知道是否可以向这个项目添加一个 WebApi 控制器并确保某个路由仅由这个 WebApi 控制器提供服务。

很高兴看到这个工作的一个例子。

0 投票
1 回答
2428 浏览

c# - 使用 OWIN SelfHost 和 Facebook 身份验证

我正在使用 OWIN 自行托管 WebApi,并且我一直在查看 VS 2013 RC 中包含的最新 SPA 模板作为指南。我有一个 Startup.Configure 方法,看起来像这样(尽可能从 SPA 复制):

在我的命令行应用程序中调用它,如下所示:

我也有一个直接来自 SPA 模板的 AccountController,但是当我手动“卷曲”网址时,http://localhost:1234/api/Account/ExternalLogins?returnUrl=%2F&generateState=true我得到一个空数组。我错过了什么?

注意:如果您熟悉 ExternalLogins 端点,它最终会调用Request.GetOwinContext().Authentication.GetExternalAuthenticationTypes(),在我的情况下它什么也不返回。

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 回答
328 浏览

c# - Owin接收图片上传

如何在我的PUT方法参数中声明我将在请求正文中收到图像?

0 投票
1 回答
399 浏览

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

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

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

我究竟做错了什么 ?

0 投票
1 回答
12380 浏览

asp.net - 如何忽略身份框架的魔力,只使用 OWIN 身份验证中间件来获取我寻求的声明?

将第三方登录集成到您的 ASP.NET 应用程序的 OWIN 中间件非常酷,但我似乎无法弄清楚如何将其从替换蹩脚的 Membership API 的新 ID 框架中删除。我对在基于 EF 的数据持久性中保留生成的声明和用户信息不感兴趣,我只想要声明信息,以便我可以将其应用于现有项目中我自己的用户帐户。我不想仅仅为了利用这些东西而采用新的 ID 框架。

我一直在 CodePlex 上浏览代码,但有很多静态魔法。你能提供什么建议吗?

0 投票
3 回答
1555 浏览

asp.net - 关于 OWIN 管道

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

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

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

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

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

0 投票
2 回答
12139 浏览

asp.net-web-api - 使用 Owin 时无法使 ASP.NET Web API 2 帮助页面正常工作

我已经为 Web Api 2 安装了正确的包

但是帮助区域没有被映射并且返回 404(Web Api 工作正常)。我使用 Microsoft.Owin.Host.SystemWeb 作为主机。下面是我的启动代码。

0 投票
6 回答
34350 浏览

asp.net-mvc - 如何使用 ASP.NET Identity (OWIN) 访问 Facebook 私人信息?

我正在用 ASP.NET MVC 5 开发一个网站(目前使用 RC1 版本)。该站点将使用 Facebook 进行用户身份验证和检索初始配置文件数据。

对于身份验证系统,我使用基于 OWIN 的新 ASP.NET 身份引擎(http://blogs.msdn.com/b/webdev/archive/2013/07/03/understanding-owin-forms-authentication-in-mvc -5.aspx),因为它极大地简化了与外部提供商进行身份验证的过程。

问题是,一旦用户首次登录,我想从 Facebook 个人资料中获取其电子邮件地址,但此数据不包含在生成的声明中。所以我考虑了这些替代方法来获取地址:

  1. 指示 ASP.NET 身份引擎将电子邮件地址包含在从 Facebook 检索然后转换为声明的数据集中。我不知道这是否可能。

  2. 使用 Facebook 图形 API ( https://developers.facebook.com/docs/getting-started/graphapi ) 通过 Facebook 用户 ID(包含在声明数据中)检索电子邮件地址。但是,如果用户将他的电子邮件地址设置为私人,这将不起作用。

  3. 使用 Facebook 图形 API,但指定“我”而不是 Facebook 用户 ID ( https://developers.facebook.com/docs/reference/api/user )。但是需要访问令牌,而且我不知道如何(或者是否可能)检索 ASP.NET 用于获取用户数据的访问令牌。

所以问题是:

  1. 如何指示 ASP.NET 身份引擎从 Facebook 检索其他信息并将其包含在声明数据中?

  2. 或者,我怎样才能检索生成的访问令牌,以便我可以自己询问 Facebook?

谢谢!

注意:对于身份验证系统,我的应用程序使用基于此 SO 答案中链接的示例项目的代码:https ://stackoverflow.com/a/18423474/4574