问题标签 [asp.net-identity]

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 投票
3 回答
13282 浏览

.net - 有什么方法可以在我的 ASP.NET MVC Web 应用程序中模拟声明主体?

我有一些ASP.NET MVC控制器代码可以检查用户是否经过身份验证,如果是,它会检查它是否有特定的声明。工作正常。

我有一些单元测试,我需要模拟一个IPrincipal(这很容易做到)......但我不确定如何检查索赔!我通常会做类似的事情

和一些控制器代码......

但是当我在我的单元测试中测试这个时这一切都失败了..因为我不确定我怎么mockClaimsPrincipal

有任何想法吗?

0 投票
3 回答
2264 浏览

asp.net-mvc-5 - 如何配置用户上下文/表?

随着新的 ASP.NET MVC 5 预览版的发布,如何配置用户上下文/表?

在 MVC 4 中,我将只使用我自己的 User 类,然后将 WebSecurity 初始化指向它,如下所示:

我希望向 Users 类添加其他属性 - 如何?

0 投票
1 回答
9121 浏览

asp.net-mvc-5 - 在 MVC5 中更新 Microsoft.Aspnet.Identity 后的编译器错误

使用 Vs2013 预览版,我创建了 ac# webapp,从对话框中选择 MVC 和 WebAPI。它编译好了。如果我将 nuget 包管理器中的引用更新到 beta2 版本(包括预发行版),则它无法编译。我收到 21 个错误,位于 AccountController.cs 和 IdentityConfig.cs。我尝试更新到最新的夜间库,它给出了相同的错误。欣赏预览代码就是这样,所以从模板重新开始。想知道是否有人知道我可以避免更新哪个参考。

错误 1 ​​以下方法或属性之间的调用不明确:“Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(System.Security.Principal.IIdentity)”和“Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(System.Security.Principal .IIdentity)' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\Controllers\AccountController.cs 115 29 vs2013bootstrap 错误2 调用在以下方法或属性之间不明确:'Microsoft.AspNet.Identity .IdentityExtensions.GetUserId(System.Security.Principal.IIdentity)' 和 'Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(System.Security.Principal.IIdentity)' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\Controllers\AccountController.cs 138 64 vs2013bootstrap 错误 3 调用在以下方法或属性之间不明确:'Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(System .Security.Principal.IIdentity)' 和 'Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(System.Security.Principal.IIdentity)' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\Controllers\ AccountController.cs 151 29 vs2013bootstrap 错误 4 以下方法或属性之间的调用不明确:“Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(System.Security.Principal.IIdentity)”和“Microsoft.AspNet.Identity.IdentityExtensions。GetUserId(System.Security.Principal.IIdentity)' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\Controllers\AccountController.cs 152 64 vs2013bootstrap 错误5 调用在以下方法或属性之间不明确:“Microsoft.AspNet.Identity.IdentityExtensions.GetUserName(System.Security.Principal.IIdentity)”和“Microsoft.AspNet.Identity.IdentityExtensions.GetUserName(System.Security.Principal.IIdentity)”C:\Users\Administrator\Documents \Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\Controllers\AccountController.cs 185 41 vs2013bootstrap 错误 6 以下方法或属性之间的调用不明确:'Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(System.Security.Principal.IIdentity )'和 'Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(System.Security.Principal.IIdentity)' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\Controllers\AccountController.cs 249 52 vs2013bootstrap 错误 7以下方法或属性之间的调用不明确:“Microsoft.AspNet.Identity.IdentityExtensions.FindFirstValue(System.Security.Claims.ClaimsIdentity, string)”和“Microsoft.AspNet.Identity.IdentityExtensions.FindFirstValue(System.Security.Claims) .ClaimsIdentity, string)' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\Controllers\AccountController.cs 286 86 vs2013bootstrap 错误8 调用在以下方法或属性之间不明确:'Microsoft.AspNet .Identity.IdentityExtensions.GetUserId(System.Security.Principal.IIdentity)' 和 'Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(System.Security.Principal.IIdentity)' C:\Users\Administrator\Documents\Visual Studio 2013\Projects \vs2013bootstrap\vs2013bootstrap\Controllers\AccountController.cs 338 61 vs2013bootstrap 错误 9“Microsoft.AspNet.Identity.IUserSecretStore”不包含“UpdateSecret”的定义,并且找不到接受“Microsoft.AspNet.Identity.IUserSecretStore”类型的第一个参数的扩展方法“UpdateSecret”(您是否缺少使用指令或程序集引用?) C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\Controllers\AccountController.cs 376 57 vs2013bootstrap 错误 10 找不到元数据文件 'C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\bin\vs2013bootstrap.dll' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap \vs2013bootstrap.Tests\CSC vs2013bootstrap.Tests 错误 11 找不到类型或命名空间名称“DbContextFactory”(您是否缺少 using 指令或程序集引用?) C:\Users\Administrator\Documents\Visual Studio 2013\Projects \vs2013bootstrap\vs2013bootstrap\App_Start\IdentityConfig.cs 32 40 vs2013bootstrap 错误 12 'UserSecret' 是 'Microsoft.AspNet.Identity.EntityFramework.UserSecret' 和 'vs2013bootstrap.Models.UserSecret' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\App_Start\IdentityConfig.cs 33 45 vs2013bootstrap 错误 13 找不到类型或命名空间名称“EFUserSecretStore”(您是否缺少 using 指令或程序集引用?) C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\App_Start\IdentityConfig.cs 33 27 vs2013bootstrap 错误 14 'UserLogin' 是 'Microsoft.AspNet.Identity.EntityFramework.UserLogin' 之间的模糊引用和 'vs2013bootstrap.Models.UserLogin' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\App_Start\IdentityConfig.cs 34 43 vs2013bootstrap 错误 15 类型或命名空间名称 'EFUserLoginStore'找不到(您是否缺少 using 指令或程序集引用?) C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\App_Start\IdentityConfig.cs 34 26 vs2013bootstrap 错误 16 'User' 是'Microsoft.AspNet.Identity.EntityFramework.User' 和 'vs2013bootstrap.Models.User' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\App_Start\IdentityConfig.cs 35 37 vs2013bootstrap 之间的模糊引用错误 17 找不到类型或命名空间名称“EFUserStore”(您是否缺少 using 指令或程序集引用?) C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\App_Start\IdentityConfig。 cs 35 25 vs2013bootstrap 错误 18 'Role' 是 'Microsoft.AspNet.Identity.EntityFramework.Role' 和 'vs2013bootstrap.Models.Role' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\App_Start\IdentityConfig.cs 之间的模糊引用36 37 vs2013bootstrap 错误 19 'UserRole' 是 'Microsoft.AspNet.Identity.EntityFramework.UserRole' 和 'vs2013bootstrap.Models.UserRole' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap 之间的模糊引用\App_Start\IdentityConfig.cs 36 43 vs2013bootstrap 错误 20 找不到类型或命名空间名称“EFRoleStore”(您是否缺少 using 指令或程序集引用?) C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\App_Start\IdentityConfig.cs 36 25 vs2013bootstrap 错误 21 调用在以下方法或属性之间不明确:'Microsoft.AspNet.Identity.IdentityExtensions.FindFirstValue(System .Security.Claims.ClaimsIdentity, string)' 和 'Microsoft.AspNet.Identity.IdentityExtensions.FindFirstValue(System.Security.Claims.ClaimsIdentity, string)' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\ vs2013bootstrap\App_Start\IdentityConfig.cs 95 24 vs2013bootstrapClaimsIdentity, string)' 和 'Microsoft.AspNet.Identity.IdentityExtensions.FindFirstValue(System.Security.Claims.ClaimsIdentity, string)' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\App_Start\IdentityConfig .cs 95 24 vs2013bootstrapClaimsIdentity, string)' 和 'Microsoft.AspNet.Identity.IdentityExtensions.FindFirstValue(System.Security.Claims.ClaimsIdentity, string)' C:\Users\Administrator\Documents\Visual Studio 2013\Projects\vs2013bootstrap\vs2013bootstrap\App_Start\IdentityConfig .cs 95 24 vs2013bootstrap

更新 如果我从头开始使用相同的模板,并将 MVC 和 WEBAPI 库更新为 5.0.0-beta2(或 Razor 的情况下为 3.0.3-beta2)。然后我的应用程序仍然可以编译。我没有应用的更新都是那些都标有 1.1.0-beta2 并以 Microsoft.Owin.Security 开头的更新

UPDATE2 如果我然后添加所有 Owin 安全引用,它仍然可以编译。离开两个图书馆

  • Microsoft.Aspnet.Identity.Core 目前为 1.0.0-Alpha1(更新为 1.0.0-Beta1)
  • Microsoft.AspNet.Identity.EntityFramework 当前为 1.0.0-Alpha1(更新 1.0.0-beta1)。

如果我更新第一个库,我会得到上述粗体错误,如果我再更新第二个库,我会得到所有其他错误。

因此,这些更新似乎与其他 beta 更新不兼容。

0 投票
4 回答
3050 浏览

asp.net - ASP.NET 标识

我目前正在构建一个新的 ASP.NET MVC 5 项目,我想在 9 月左右发布。我需要选择一个会员系统,但我目前对我应该采取哪个方向感到很困惑。当前的 SimpleMembership 运行良好,但显然与即将推出的 ASP.NET Identity 不兼容。另一方面,ASP.NET Identity 是全新的零文档,并且可以随时更改。最后,这里似乎使用了基于字符串的 ID,与 SimpleMembership 支持的基于整数的 ID 相比,这似乎是非常不必要的开销。我可以选择一种好的、面向未来的方法吗?

0 投票
1 回答
8533 浏览

forms-authentication - 如何在现有数据库中使用新的 MVC5 身份验证

我浏览了当前的文献,但我正在努力研究如何使新IdentityStore系统与您自己的数据库一起工作。

我的数据库的用户表在tblMember下面称为示例类。

当前用户使用membership_id唯一的登录,然后我在整个系统中使用作为主键的 id。我不能使用用户名场景进行登录,因为它在这个系统上不够独特。

通过我看到的示例,看起来该系统的设计对我来说非常具有延展性,但我目前无法锻炼如何获取本地登录名以使用我的tblmember表进行身份验证membership_id,然后我将可以从任何用户访问该用户的 tblMember 记录通过 User 属性控制控制器。

http://blogs.msdn.com/b/webdev/archive/2013/07/03/understanding-owin-forms-authentication-in-mvc-5.aspx

0 投票
1 回答
2284 浏览

asp.net-mvc - Visual Studio 2013 MVC 模板与 Unity 一起使用时会引发错误

我使用最新的 ASP.NET 和 Web Tools 2013 Preview Refresh (1.0.0-beta1) 在 Visual Studio 2013(预览版)中创建了一个新的 MVC5 应用程序。我注意到 IdentityConfig.cs 连同现在是框架一部分的用户模型一起消失了。并且 IdentityStoreManager 是在默认 AccountController 中与 IdentityAuthenticationManager 一起引入的。

当我构建并运行标准项目时,一切正常!到目前为止一切顺利,是的!

然后我从 Nuget 安装 Unity。我拉 Unity 和 Unity.MVC(都是 3.0.1304.0 版本)。安装这些包会导致添加 3 个引用和 2 个项目文件(UnityConfig.cs 和 UnityMVCActivator.cs)。我没有触摸任何文件并尝试运行网络应用程序。主页显示很好,但是当我转到“注册”或“登录”页面时出现错误。使用新 Identity 模型的 AccountController 会抛出以下异常(已修改):

IIdentityStoreContext 类型没有可访问的构造函数。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

[ResolutionFailedException: 依赖解析失败,type = "Teamster.Web.Controllers.AccountController", name = "(none)"。异常发生时:解决时。

例外是: InvalidOperationException - IIdentityStoreContext 类型没有可访问的构造函数。

在异常发生时,容器是:

解析 Teamster.Web.Controllers.AccountController,(none) 解析构造函数 Teamster.Web.Controllers.AccountController(Microsoft.AspNet.Identity.EntityFramework.IdentityStoreManager storeManager, Microsoft.AspNet.Identity.EntityFramework.IdentityAuthenticationManager authManager) 的参数“storeManager” Microsoft.AspNet.Identity.EntityFramework.IdentityStoreManager,(none) 解析构造函数的参数“context” Microsoft.AspNet.Identity.EntityFramework.IdentityStoreManager(Microsoft.AspNet.Identity.IIdentityStoreContext context) 解析Microsoft.AspNet.Identity.IIdentityStoreContext,(none ) ]

AccountController 有一个无参数的构造函数,但作为例外,AccountControllers 构造函数中使用的 IIdentityStoreContext 是统一的问题。IIdentityStoreContext 在 Identity 框架中。

我该如何解决这个问题,是否可以通过以某种方式配置 Unity 容器来解决这个问题?

为了清楚起见,这是默认的 AccountController ctors。:

0 投票
1 回答
401 浏览

asp.net-mvc-5 - visual studio 2013 mvc 5 配置初始用户密码

我是 2013 MVC 5 的新手。我正在尝试在配置种子中初始化用户。但是我不知道如何加密

context.Secrets.AddOrUpdate(i => i.UserName, new UserSecret {"admin", "encrtpted-secret"} );

有人知道怎么做吗?

0 投票
3 回答
15755 浏览

asp.net-mvc - Microsoft.AspNet.Identity 的自定义成员身份 - CreateLocalUser 失败

我一直在尝试使用 Visual Studio 2013 在 ASP.NET 4.5 (Microsoft.AspNet.Identity) 中实现新标识功能的自定义版本。经过数小时的尝试,我将代码简化为努力让它没有错误地运行。我在下面列出了我的代码。进行本地注册时,会创建数据库表,但 CreateLocalUser 方法失败。我希望有人可以帮助我确定所需的更改。

模型/会员模型.cs

对控制器/AccountController.cs 的更改

正如我上面所说,当 CreateLocalUser 方法失败(Microsoft.AspNet.Identity.EntityFramework)时,这个实现会失败。我不知道为什么。

0 投票
7 回答
19338 浏览

asp.net-mvc - 使用外部身份验证提供程序从 MVC5 框架 OAuth/OWin 身份提供程序获取 ExtraData

我正在尝试在 VS 2013 预览版中使用新的 MVC5 框架。

会员身份验证框架已经过大修并替换为OWin.

特别是,我打开了外部身份验证提供程序 Google auth。

这很简单。

只需取消注释此行: app.UseGoogleAuthentication();在新的默认 MVC 项目的 App_Start 目录中的 Startup.Auth.cs 文件中。

因此,我想访问来自身份验证提供程序的“额外数据”,例如要在我的应用程序中显示的用户头像的 url。

在针对 asp.net Membership 提供程序的旧 OAuth 实现下,有一种方法可以使用此处找到的 ExtraData 字典来捕获它:ProviderDetail.ExtraData Property

我找不到太多关于 OAuth 和 OWin 如何协同工作以及如何访问这些额外数据的文档。

任何人都可以启发我吗?

0 投票
1 回答
525 浏览

c# - mvc5 IdentityAuthenticationManager 重置数据库

我将如何去重置支持Microsoft.AspNet.Identity.EntityFramework.IdentityAuthenticationManager.

我去添加Database.SetInitializer(new DropCreateDatabaseAlways<>);到 global.asax,但是我应该为 TContext 使用什么?