问题标签 [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.
entity-framework - 为什么 ASP.NET SPA 模板对所有请求都实例化一次 UserManager?
我使用 VS2013 ASP.NET SPA 模板作为我的 Web 应用程序的起点,该应用程序使用新的 ASP.NET 身份框架。这是来自模板:
因此,由于没有 DbContext 被传递到上面的 UserStore 构造函数中,这向我表明正在创建一个新的 DbContext。由于我还想利用数据上下文(用于请求期间的其他数据操作),所以我稍微更改了模板代码:
现在,我可以通过访问从我的任何控制器中使用相同的 DbContext:
但是,当多个请求同时进入时,我遇到了麻烦,因为不相关的操作发生在同一个 DbContext 中。从这里,有人向我指出,我不应该为应用程序的整个生命周期实例化单个 DbContext,而应该只为特定请求的生命周期实例化,所以我将实例化移动到控制器的构造函数,但是现在,我在控制器中有自己的 DbContext,而 UserManager 仍然有自己的(并且在 Startup 类中创建)。
为什么模板为所有用户(在 Startup 类中)实例化一次 UserManager?是否值得担心,通过在控制器构造函数中创建我自己的 DbContext,有两个 DbContext(我在控制器的构造函数中创建的一个,另一个在 UserManager 中,在 Startup 类中创建)同时运行?在所有请求之间共享一个 UserManager 是否可以接受,但在所有请求之间共享一个 DbContext 通常是不可接受的?
使用两个不同的上下文似乎很愚蠢,我注意到我有时会得到一个不同步的数据视图。我想了解是否有其他人在使用此模板时遇到此问题。
**编辑:我知道像 nInject 这样的 IOC 框架可能有助于在这种情况下管理对象生命周期,但我想首先了解如何在没有此类框架帮助的情况下完成此任务。
谢谢...-本
asp.net-mvc-5 - Web API 2 OWIN Bearer Token cookie的用途?
我正在尝试了解 MVC 5 中单页应用程序模板中新的 OWIN Bearer Token 身份验证过程。如果我错了,请纠正我,对于 OAuth 密码客户端身份验证流程,Bearer Token 身份验证通过检查 http 授权请求标头来工作对于承载访问令牌代码来查看请求是否经过身份验证,它不依赖 cookie 来检查特定请求是否经过身份验证。
根据这篇文章:
使用 Web API 示例进行 OWIN 不记名令牌身份验证
GrantReourceOwnerCredentials 函数不仅使用以下行组成票证: context.Validated(ticket); 但它也组成一个 cookie 身份,并使用以下行将其设置为 cookie: context.Request.Context.Authentication.SignIn(cookiesIdentity);
所以我的问题是,这个函数中 cookie 的确切目的是什么?AuthenticationTicket 不应该足以用于身份验证目的吗?
authentication - 在客户端 OWIN Web 应用程序中实施 Azure Active Directory 身份验证
您好,我已经阅读并实施了这些 Vittorio Bertocci 教程:
“使用 Windows Azure AD 和 Microsoft OWIN 组件保护 ASP.NET Web API”
“使用 Microsoft.Owin.Security.ActiveDirectory 保护自托管 API”
然而,与教程不同的是,我的 Web 应用程序由以下 OWIN 组件组成:NancyFx 和 ASP.NET Web API(遵循此处阐述的架构模式)当我尝试将 AAD 身份验证(正如 Bertocci 先生在他的教程中所做的那样)到我的NancyFx 模块(用于对访问需要身份验证的路由的用户进行身份验证):
我收到以下错误
附加信息:加载交互式用户身份验证所需的程序集失败。确保程序集 'Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 存在。
显然,弹出的要求用户登录的 AAD 对话框依赖于 WindowsForms,不应从 Web 应用程序调用。
我应该改用什么 AAD 凭据提示?如何在 Web 应用程序客户端中实现 AAD 身份验证?
c# - OWIN/Katana 和 Mono 的区别
我碰到了 OWIN 和 Katana,我现在正试图了解这到底是什么。据我了解,它只是试图将 Web 应用程序与 Web 主机分开。
所以它基本上说,当你构建一个 ASP.NET MVC Web 应用程序时,你在部署 Web 应用程序时绑定到 IIS。使用 OWIN/Katana,您就没有这个问题。这就是我的理解,这是正确的吗?
如果是这样,那么当我可以简单地使用“mod_mono”将我的 ASP.NET Web 应用程序部署到 NGINX、Apache 等服务器时,我为什么要在我的项目中使用 OWIN/Katana?
因为这基本上就是 OWIN 项目的目标,对吧?但是我发现在我的 Web 应用程序中实现 OWIN/Katana 比仅仅使用 MVC 的Web API并稍后将其部署到 Mono 环境更麻烦。如果我愿意,我什至可以在 Linux 中运行它。
那么什么时候应该选择 OWIN/Katana 而不是 Mod Mono?最后真的有区别吗?
c# - OWIN/Katana & BasicAuthentication
我正在尝试完成一项简单的任务:使用 BASIC Auth 保护我的 ASP.NET WEBAPI(构建在 Katana 之上)。我知道我可以实现自己的中间件或消息处理程序或其他任何东西。但是我想知道这样一个简单的任务是否还没有实现?我在网上找到了多个示例,这些示例显示了它应该多么简单。但是所有这些示例都引用了一个名为 microsoft.owin.security.basic 的 nuget 包,我在任何地方都找不到它!?你能帮助我吗?
asp.net - 我什么时候应该使用 OWIN Katana?
我是 OWIN 和 Katana 的新手。我真的不明白为什么我应该使用 OWIN,而我可以使用IIS
. 为简化起见,我的问题是:如果我跳过学习 OWIN 并在我的网站上使用 IIS,我会失去什么?
我用谷歌搜索,但没有一个简单的解释。这里有一些信息,但他们使用了一些行话,所以我无法理解。
azure - 如何让 ASPNET WebAPI 与 Microsoft.Owin.Host.HttpListener 一起使用 IoC 容器在 Azure 辅助角色上工作?
当我在 Azure 辅助角色中安装了以下包时:
只要我不尝试注册 IoC 容器,我就可以让应用程序正常工作。
只要我把这行放在我的 Startup.cs 文件中:
我得到以下异常:
Microsoft.WindowsAzure.ServiceRuntime.dll 中出现“System.Reflection.TargetInvocationException”类型的未处理异常
如果我将完全相同的代码放在控制台应用程序中,它可以正常工作而不会引发异常。这是我的 WorkerRole.cs 类的全部内容:
她的就是我的 Startup.cs 课程的全部内容:
尝试将 Castle.Windsor 与以下软件包一起使用时,我遇到了同样的问题:
而这行代码:
谁能告诉我这里有什么问题?我怀疑这是 Azure 计算模拟器的问题,因为它可以在控制台应用程序中完美运行,但是我不知道如何进一步诊断它。
asp.net-mvc - 如何在 MVC 5Application 中实现 OWIN 和 Katana
我将我的应用程序从 mvc4 升级到 mvc5。我在我的应用程序中使用实体框架代码优先方法。我对 OWIN 和 Katana 感到困惑。我如何在我的 web mvc5 应用程序中实现这些概念。请指导我。
谢谢
asp.net-web-api - 如何访问/处理 IOwinRequest 正文
我正在为 Hmac 身份验证编写自定义 Owin 中间件 AuthenticationHandler。
在覆盖的“AuthenticateCoreAsync”方法中,我需要读取请求的 http 标头和“正文”(内容)。
我有一切工作,索赔/身份验证票等。
但是每当我访问或使用 IOwinRequest.Body 做某事时,我的 WebApi 控制器就会中断。它们被正确调用,但所有 api 方法参数都是“null”。好像正文内容在某个过程中丢失了。
我尝试将 IOwinRequest.Body 复制到内存流并使用它,我尝试使用 IOwinRequest.Body.Seek(0) 等重置它,但均无济于事。
我也找不到任何关于如何使用 IOwinRequest 正文的好的示例/文档。
任何人都可以指出我正确的方向吗?
在下面的代码中,当我留下评论时它会起作用。当我取消注释这些行以实际进行身份验证(并从 Body 读取)时,我的 webapi 方法接收所有空参数。
HMacAuthenticationHandler: