问题标签 [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 投票
8 回答
17403 浏览

asp.net - ASP.NET MVC 5(VS2013 最终版):使用 OWIN 登录 Facebook 失败(loginInfo 为空)

我安装了昨天发布的 VS2013 最终版本,并且我试图让一个示例在我启用外部 Facebook 登录的情况下工作。我的第一个问题:

在这个控制器代码中(我没有触摸它,而是从示例模板中保留下来):

我在 await AuthenticationManager.GetExternalLoginInfoAsync() 行上设置了一个断点。代码返回(在我登录 Facebook 之后),并且“loginInfo”为空。在 UI 中,登录页面继续显示,没有任何变化。我该如何调试呢?我试图在 GetExternalLoginInfoAsync() 中找到代码,但根据这个线程:

Asp.Net Identity RTM 版本中的 Microsoft.AspNet.Identity.Owin.AuthenticationManager 在哪里?

AuthenticationManager 现在不见了。(上述情况似乎并非如此。)

我的第二个问题:是否有其他人能够在不更改 ASP.NET MVC5 示例代码的情况下使用 Facebook 登录的示例(除了取消注释 app.UseFacebookAuthentication 并填写您的 FB 应用程序详细信息)?(您必须使用 Facebook 配置别名主机,例如“localtest.me”并使用 IIS express 进行配置。)

谢谢你的帮助...

-本

0 投票
1 回答
1306 浏览

azure - owin 自托管 web api 新遗物监控

我刚刚将一些 web api 从 IIS web 角色转移到了 Windows Azure 中的工作者角色,这就是工作方式的赌注。我想知道的是,在我们使用 New Relic 监控 Web 服务器之前,这样会好多少。我在工作角色上安装了代理,但没有获得任何出色的分析。

(我遵循什么来完成这项工作)

所以我希望有人可以帮助我获得一些关于我的自托管网络服务器在新文物中的表现如何的基本统计数据。我在寻找吞吐量、响应时间和日志错误。

发现了一些似乎让我认为我可以做到但我不熟悉 owin 的东西。

如果有人对如何完成这项工作有一些想法,那就太好了!

编辑:我正在寻找的是是否有人可以帮助我使用 newrelic api(RecordMetric()、RecordResponseTimeMetric()、IncrementCounter() 等)并将其连接到 owin 管道中以记录吞吐量、响应时间和日志错误?

0 投票
3 回答
14230 浏览

asp.net - 如何访问 Microsoft.Owin.Security.xyz OnAuthenticated 上下文 AddClaims 值?

我正在尝试检索作为 OnAuthenticated 上下文返回的用户属性,并在此示例之后添加为声明: 如何使用 ASP.NET 身份 (OWIN) 访问 Facebook 私人信息?

我可以看到我期望的数据在登录时被返回,并被添加为 Starup.Auth.cs 中的声明。但是,当我在 Account Controller 中时,出现在 UserManager 或 UserStore 中的唯一声明是由 LOCAL AUTHORITY 发布的。找不到 Facebook(或其他外部提供商)的声明。添加到上下文中的声明在哪里结束?(我正在使用 VS2013 RTM。)

Azure 上的完整源代码和实时站点链接在这里:https ://github.com/johndpalm/IdentityUserPropertiesSample/tree/VS2013rtm

这是我在 Startup.Auth.cs 中的内容:

捕获外部登录属性的另一种方法是为访问令牌添加一个声明并使用属性填充它:

注意 - 此示例不起作用:尽管传递带有属性的单个声明会很好。外部 cookie 似乎注意到了声明属性。稍后从身份中检索属性时,这些属性为空。

0 投票
2 回答
2431 浏览

visual-studio-2013 - VS2013 (RTW):SPA 模板与 MVC5 模板的身份验证差异?

我一直在使用 VS2013 RTW MVC 模板(用于“个人用户帐户”)中的新 ASP.NET 身份产品,效果很好:我能够在自定义数据序列化方式的同时集成 Facebook 登录。

一切都很好,但我注意到如果我创建一个新的 SPA 应用程序(而不是 MVC),身份验证故事似乎非常不同。举个例子:

从 SPA 模板:

从 MVC 模板:

这只是 Account 控制器的构造函数的区别。还有很多很多其他的差异。使用 MVC 版本,我能够轻松地从 ApplicationDBContext 派生我自己的上下文类,并使用它来将我自己的表与身份验证表一起存储。我不知道如何在 SPA 模板中自定义数据存储。

此外,SPA 模板包含并使用此类: public class ApplicationOAuthProvider : OAuthAuthorizationServerProvider

MVC 模板不定义(或使用)此类。

我不明白为什么 MVC 模板和 SPA 模板之间需要有任何区别。

谁能给我一些指导,说明为什么这两个模板中的身份验证处理方式如此不同?从头开始一个项目,两者之间是否有首选路径?(看起来 MVC 模板中的代码是最好的,尤其是在通过定义自定义 EF 上下文类来自定义数据存储方式方面。)

谢谢...

-本

0 投票
1 回答
16155 浏览

authentication - 如何使用 Windows 身份验证和自定义角色提供程序设置 OWIN

在 MVC4 中,我<authentication mode="Windows"/>在 web.config 中启用并创建了一个自定义角色提供程序,然后它会自动WindowsIdentityRolePrincipal您包装。像魅力一样工作。

您将如何使用 OWIN 和/或 Microsoft.ASPNET.Identity 在 MVC5 中执行此操作?

0 投票
2 回答
5483 浏览

authentication - 在 ASP.NET MVC5 中使用 Steam 登录

我最近一直在玩 ASP.NET MVC5 和新的 OWIN 身份验证中间件。我希望我的用户使用他们的 Steam 帐户和密码登录。用户成功登录后,我只需要 Steam 帐户 ID 进行进一步处理。Steam 可以充当文档中所述的 OpenId 提供者。

在 MVC4 中,人们将实现一个自定义 OpenIdClient。在我看来,在 MVC5 中,OpenIdClient 类已被删除,并且使用 IAppBuilder 类配置身份验证,该类提供了使用 Facebook、Google 和其他预定义提供程序登录的方法。

不幸的是,我找不到任何有关将自定义提供程序插入新身份验证系统的文档。你能给我任何指示或参考吗?

0 投票
1 回答
3324 浏览

authentication - 为 owin 身份验证实施自定义身份验证提供程序的推荐方法

我需要通过 LinkedIn、Vkontakte 和其他还没有提供者的社交网络对用户进行身份验证。

我通过以下方式成功创建了自定义身份验证提供程序:

  1. 在源代码中获取 Facebook 提供商的Katana代码。
  2. 将所有“Facebook”更改为“Vkontakte”(只需查找和替换)。
  3. 自定义[provider_name]AuthenticatedContext[provider_name]AuthenticationHandler.ApplyResponseChallengeAsync()[provider_name]AuthenticationHandler.AuthenticateCoreAsync().

一切正常,但只是想知道。许多代码是重复的,没有实际变化。有没有办法使用任何标准的东西来构建自定义提供程序,而不仅仅是复制文件?

0 投票
5 回答
75559 浏览

asp.net-mvc - ASP.NET (OWIN) 身份:如何从 Web API 控制器获取用户 ID?

(使用VS2013 RTW,ASP.NET MVC5)

我看过很多关于如何在使用 ASP.NET 标识时向 ApplicationUser 类(和表)添加属性的文档。但是我还没有看到任何关于如何拥有一个单独的表的文档,该表的内容通过外键映射到 ApplicationUser 表。

我已经成功地派生了我自己的 Microsoft.AspNet.Identity.EntityFramework.IdentityDbContext,现在我自己的“UserPreferences”表与我的 SQL Server 数据库中的各种“AspNet*”表和谐共存。但我不清楚获取当前用户 ID 以便将新行写入“UserPreferences”表的最佳方法。请注意,该项目是 ASP.NET MVC,但我已经添加(并且正在其中工作)一个 Web API 控制器。

我有一个可行的解决方案,即:

考虑 AspNetUsers 表(由 Identity 框架定义)由以下字段组成:

我认为 id 字段(不是用户名)是此表中要引用的正确字段。(我在想一个用户可能会更改他/她的用户名,然后其他人可以假设另一个用户的用户名,这就是为什么两个字段都可能存在的原因。)那么,我需要获取当前用户的 ID 以存储在“UserPreferences”表,这就是上面的代码所做的。但是必须进行此查找似乎效率低下。

重要的一点是,在 System.Web.Mvc.Controller 的上下文中,我可以这样做:

但是在 System.Web.Http.ApiController (Web API) 的上下文中,我不能,因为该方法不存在(User.Identity 的运行时类型:System.Security.Claims.ClaimsIdentity),这就是我必须依赖的原因:

并进行额外的查找以将名称转换为 ID。有人对如何改进有任何建议吗?我是否正在以正确的方式将用户数据写入单独的表?

0 投票
5 回答
28227 浏览

reflection - 如何在新的 VS2013 Asp.net 模板中禁用 System.Security.Permissions.ReflectionPermission 使用,使其适用于共享主机

我使用默认 MVC 模板创建了一个全新的 Visual Studio 2013 ASp.net MVC 应用程序。但是,我收到一条错误消息“System.Security.Permissions.ReflectionPermission 类型的权限请求失败。

是否可以关闭此反射权限以使该站点仍然有效?

这是我的 web.config

异常详细信息:System.Security.SecurityException:请求“System.Security.Permissions.ReflectionPermission,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。

[SecurityException: 请求类型>'System.Security.Permissions.ReflectionPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 的权限失败。] System.Delegate.DelegateConstruct(Object target, IntPtr slot) +0 Owin.Loader.DefaultLoader..ctor(Func 3 next, Func2 激活器,IEnumerable1 referencedAssemblies) +69 Microsoft.Owin.Host.SystemWeb.OwinBuilder.GetAppStartup() +65 Microsoft.Owin.Host.SystemWeb.OwinHttpModule.InitializeBlueprint() +28 System.Threading.LazyInitializer.EnsureInitializedCore(T& target, Boolean& initialized, Object& syncLock, Func1 valueFactory) +115 Microsoft.Owin.Host.SystemWeb.OwinHttpModule.Init(HttpApplication context) +106 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +418 System.Web.HttpApplication.InitSpecial (HttpApplicationState 状态,MethodInfo[] 处理程序,IntPtr appContext,HttpContext 上下文)+172 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext,HttpContext 上下文)+336 System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)+296

我试图添加

到我的 Web.Config system.Web 部分,但是因为我得到了一个

此配置部分不能在此路径中使用。当站点管理员使用继承的配置文件锁定对此部分的访问权限时,就会发生这种情况。

它是 1and1.com 的共享主机,他们不会完全信任我。

0 投票
0 回答
523 浏览

asp.net-web-api - 将第一条消息发送到 NServiceBus 的简单端点

我想创建一个简单的端点,我可以在其中接收一些字符串,然后解析并为 nservicebus 创建一条消息。我已经尝试过 asp.net webapi、nancy 和 owin。

在 ninject 的 RegisterServices 方法的 asp.net web.api 中,我用这个配置了 nservicebus

当服务器启动时,我可以从我的控制器发送一条消息,但是当我尝试发送另一条消息时,它会抛出此异常:

使用 nancy 或 owin 我实现了接口 IWantToRunWhenBusStartsAndStops 并在 Start 方法中创建了一个自托管的 nancy 或 owin 实例。它运行顺利,我可以从我的浏览器访问端点。问题是在nancy模块或owin启动类中注入IBus属性,IBus属性始终为null

有什么想法吗?

谢谢!