问题标签 [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.
owin - Katana Webserver 找不到 clientSecret
我下载了 katana 项目,想在沙盒项目中尝试客户端/服务器。
我在 for OAuthValidateClientAuthenticationContext 遇到了一个问题:
clientSecret 为空,因此以下内容不验证客户端。
asp.net-web-api - 是否可以在同一个应用程序中同时使用 NancyFx 模块和 WebAPI 控制器?
我有一个使用 NancyFx 的自托管 Owin HttpListener 应用程序。
我想知道是否可以向这个项目添加一个 WebApi 控制器并确保某个路由仅由这个 WebApi 控制器提供服务。
很高兴看到这个工作的一个例子。
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()
,在我的情况下它什么也不返回。
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
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 的设置。
c# - Owin接收图片上传
如何在我的PUT方法参数中声明我将在请求正文中收到图像?
c# - Katana 中的 HttpListener 不发送响应
我正在编写一个非常基本的设置来托管一个基于 katana http Listener 的应用程序。
运行这个程序时,我可以访问端口 5000,它甚至在我编写的 owinMiddleWare 中到达了一个断点。但它的响应永远不会关闭,我无法在浏览器中获得响应。
我究竟做错了什么 ?
asp.net - 如何忽略身份框架的魔力,只使用 OWIN 身份验证中间件来获取我寻求的声明?
将第三方登录集成到您的 ASP.NET 应用程序的 OWIN 中间件非常酷,但我似乎无法弄清楚如何将其从替换蹩脚的 Membership API 的新 ID 框架中删除。我对在基于 EF 的数据持久性中保留生成的声明和用户信息不感兴趣,我只想要声明信息,以便我可以将其应用于现有项目中我自己的用户帐户。我不想仅仅为了利用这些东西而采用新的 ID 框架。
我一直在 CodePlex 上浏览代码,但有很多静态魔法。你能提供什么建议吗?
asp.net - 关于 OWIN 管道
我有一个关于 OWIN 管道的简单问题。我非常了解这个规范的整个概念,但有些东西我还没有完全消化。
根据网上的几篇帖子,有一个 OWIN 管道,它由几个开发人员定义的模块(或中间件组件)组成,由 owin Host 构建。然后是服务器,它将侦听请求并将它们传递给 = 通过 OWIN 组件的管道。
我不完全理解的一点是为什么我们需要管道。例如,让我们想象在 StartUp 类中我们有类似的东西:
在上面的示例中,我们要求 OWIN 主机构建三个 OWIN 中间件组件的管道。据我了解,服务器会将请求(可能包含在字典中)转发到该管道中的第一个组件,然后该组件将执行一些任务并将其传递给下一个组件,依此类推。
我想知道为什么我们需要获取每个请求中涉及的所有组件;例如,如果我们只要求静态 html 页面,为什么不只打扰处理静态文件的组件呢?我的意思是为什么这样的请求需要 Web Api 的参与。
asp.net-web-api - 使用 Owin 时无法使 ASP.NET Web API 2 帮助页面正常工作
我已经为 Web Api 2 安装了正确的包
但是帮助区域没有被映射并且返回 404(Web Api 工作正常)。我使用 Microsoft.Owin.Host.SystemWeb 作为主机。下面是我的启动代码。
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 个人资料中获取其电子邮件地址,但此数据不包含在生成的声明中。所以我考虑了这些替代方法来获取地址:
指示 ASP.NET 身份引擎将电子邮件地址包含在从 Facebook 检索然后转换为声明的数据集中。我不知道这是否可能。
使用 Facebook 图形 API ( https://developers.facebook.com/docs/getting-started/graphapi ) 通过 Facebook 用户 ID(包含在声明数据中)检索电子邮件地址。但是,如果用户将他的电子邮件地址设置为私人,这将不起作用。
使用 Facebook 图形 API,但指定“我”而不是 Facebook 用户 ID ( https://developers.facebook.com/docs/reference/api/user )。但是需要访问令牌,而且我不知道如何(或者是否可能)检索 ASP.NET 用于获取用户数据的访问令牌。
所以问题是:
如何指示 ASP.NET 身份引擎从 Facebook 检索其他信息并将其包含在声明数据中?
或者,我怎样才能检索生成的访问令牌,以便我可以自己询问 Facebook?
谢谢!
注意:对于身份验证系统,我的应用程序使用基于此 SO 答案中链接的示例项目的代码:https ://stackoverflow.com/a/18423474/4574