问题标签 [asp.net-identity-2]
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.
asp.net-mvc-5 - 身份2.0的IPasswordHasher恢复密码?
是否可以解密 Identity 2.0 的 IPasswordHasher 散列的密码?我只看到两种方法HashPassword
和PasswordVerificationResult
. 如果我想解密密码怎么办?有什么办法吗?
android - 具有 asp.net 身份和 Android 授权的混合身份验证
我正在用 asp 做一个网站,它使用 Identity (v2.0) 以及一个通过 Web API 连接到网站的 Android 应用程序。
我已将 Identity 配置为使用 Google OAuth 登录,并且运行良好。现在我正在尝试为应用程序制作一个 Web API,我还需要对移动用户进行身份验证。
我已经达到了配置身份来管理 api 的不记名令牌的地步。但是要执行登录,我发现的唯一方法是通过用户和密码,如文档所述:
或通过网络执行 OAuth 质询。
由于 Android 还管理 Google OAuth。有没有办法配置身份以使用 Google Oauth 执行登录?
我既没有找到管理外部不记名令牌的方法,也没有找到使用 Google 身份验证令牌使用带有身份的 Web Api 进行签名的方法。
也许我误解了什么。
提前致谢。
c# - 带有自定义表的 Identity 2.0
我是 ASP.NET 身份的新手,我仍在努力了解它是如何工作的。不幸的是,我发现我尝试过的许多教程都是针对 Identity 1.0 的,而我正在尝试使用 Identity 2.0。
我面临的最大问题是我认为很简单,但事实证明并非如此。我想要做的是使用现有的数据库和现有的用户表。目前,我似乎所能做的就是让 Identity 创建它自己的表来存储用户数据。我不想使用 Entity Framework,但我很难将 Entity Framework 与 Identity 2.0 分开。
在我使用 SQL Server 的情况下,我想我会尝试在此链接上实现 MySQL 的自定义提供程序:http ://www.asp.net/identity/overview/extensibility/implementing-a-custom-mysql -aspnet-identity-storage-provider和https://github.com/raquelsa/AspNet.Identity.MySQL。这似乎仅适用于身份 1。似乎确实有一个更新的,但是它使用实体框架。我也试过https://github.com/ILMServices/RavenDB.AspNet.Identity。
通过我尝试过的一切,我陷入了以下行:
我面临的问题是我需要根据 RavenDB 的说明删除 ApplicaitonDbContext 类,但是我不知道在这一行中放什么。
我得到的错误是:
非泛型类型“AspNet.Identity.MySQL.UserStore”不能与类型参数一起使用
和
找不到类型或命名空间名称“ApplicationDbContext”(您是否缺少 using 指令或程序集引用?)
第二个错误是意料之中的,但是我不确定在这行代码中使用什么。有没有人在不使用实体框架的情况下实现自定义提供程序的经验?
谢谢。
更新1:
我尝试了以下教程 [ http://aspnetguru.com/customize-authentication-to-your-own-set-of-tables-in-asp-net-mvc-5/ ] 但它似乎不完整,完全遵循本教程时出现编译或运行时错误。我还有几个问题是...
将“ApplicationUser”的所有实例替换为“User”时,IdentityConfig.cs 中的以下行出现问题
将 ApplicationUser 更改为 User 会产生以下错误
类型“WebApplicationTest2.Models.User”不能用作泛型类型或方法“Microsoft.AspNet.Identity.EntityFramework.UserStore”中的类型参数“TUser”。没有从“WebApplicationTest2.Models.User”到“Microsoft.AspNet.Identity.EntityFramework.IdentityUser”的隐式引用转换。
我也很难弄清楚如何使用用户管理器和许多异步方法。以下行不起作用:
在 AccountController.cs 中出现以下错误:
'Microsoft.Owin.Security.IAuthenticationManager.SignIn(Microsoft.Owin.Security.AuthenticationProperties, params System.Security.Claims.ClaimsIdentity[])' 的最佳重载方法匹配有一些无效参数。
“WebApplicationTest2.Models.User”不包含“GenerateUserIdentityAsync”的定义,并且找不到接受“WebApplicationTest2.Models.User”类型的第一个参数的扩展方法“GenerateUserIdentityAsync”(您是否缺少 using 指令或程序集引用?)
cookies - 使用 ASP.NET Identity 2 防止外部登录重定向写入 cookie
除了发现新的 ASP.NET Identity 2 系统体积庞大且令人困惑之外。我只是想做一些简单的事情,提供 oAuth 凭据,然后使用 facebook 登录。
完成这项工作后,响应会写入一个巨大的“状态”字符串并设置一个同样大的 cookie。现在这是一个匿名用户,那么这个值是什么?
MS为此提供的库都是闭源的,并且不存在任何文档,这没有帮助。反编译 Identity 工作所需的几十个库并没有产生任何洞察力。
什么是 cookie,它们在哪里设置,以及如何关闭它们?
asp.net-identity-2 - 将 Thinktecture IdentityManager 集成到现有站点
我有一个使用 Identity 的现有 MVC 站点,我想使用 Thinktecture IdentityManager。问题是它带有自己的基于 OWIN 的主机,而我的站点使用 IIS。将 Thinktecture IdentityManager 集成到现有站点的最佳方式是什么?
谢谢,贾斯汀。
c# - 尝试更改 ASP.NET Identity 2.0 中的表名
我想更改 ASP.NET Identity 2.0 使用的表的名称。我见过各种类似的问题,但没有什么能解决我的问题。例如这种类型的解决方案: http ://www.goatly.net/customizing-table-names-for-identitydbcontextwithcustomuser-data-contexts 似乎依赖于 Code First(?)。无论如何,实现 OnModelCreating 对我没有任何帮助。我基本上已经将 AspNetUsers 和类似的表重命名为我自己的名字,并且希望能够使用它们。我有一个想要使用的现有 EF 上下文(MyContext),所以我修改它以从 IdentityDbContext 派生(编辑 t4 模板),然后在 Startup.Auth 我有:
但是当我尝试登录时出现“无法联系服务器”的问题。我想那是因为我的 UserStore 无法知道我的上下文中哪些是 User 表。我希望这是 OnModelCreating 代码会做的事情,但我对此很模糊。我想 UserStore 仍在寻找“AspNetUsers”表,尽管我不知道这些名称来自哪里。我也对为我的上下文修改 t4 模板感到不安——这是我应该从 IdentityDbContext 派生的方式吗?
非常感谢任何帮助。
asp.net-mvc - Asp.net Identity 使用什么算法来加密密码?
框架使用什么样的算法Asp.Net Identity
来加密密码?我有一个场景,其中 android、iPhone、web 和桌面使用相同的数据库。这个密码应该是加密的,所以ASP.NET MVC
我使用了身份框架来加密密码。现在我需要该算法适用于所有平台。
任何帮助将不胜感激。
提前致谢。
entity-framework - ASP.NET Identity Model First fails because of renamed AspNetUserRoles columns
Like several others I have tried to implement ASP.NET Identity Model First. Everything works fine once you have tried, errored, fumed, searched and resolved.. I thought.
See also:
- ASP.NET Identity with EF Database First MVC5
- http://danieleagle.com/blog/2014/05/setting-up-asp-net-identity-framework-2-0-with-database-first-vs2013-update-2-spa-template/
Course of action, summarized:
- Created default project (MVC5)
- Create database
- Update connectionstring in the web.config
- Run website, register: tables get created
- Create EF Model (edmx)
- Import Identity tables (everything fine up to this point)
- Modified xxx.Context.tt to inherit from IdentityDbContext
- Generate database script (trouble starts here)
I have solved the issues that appeared (up to the latest step). For completeness I will describe them.
Using the default Identity context
Everything works fine: tables get created, I can Register and login. This is however not the situation I want: I want to use a Model First approach.
Using the custom, model first context using the EF connectionstring
Modifying the CreatePerOwinContext so that it uses my Model First context:
And the ApplicationUserManager so that it uses the Model First context:
Results in:
Server Error in '/' Application.
The entity type ApplicationUser is not part of the model for the current context.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: The entity type ApplicationUser is not part of the model for the current context.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace: [InvalidOperationException: The entity type ApplicationUser is not part of the model for the current context.]
Using the "normal" connectionstring with the custom, Model First context
An exception of type 'System.Data.Entity.Infrastructure.UnintentionalCodeFirstException' occurred in WebApplication1.dll but was not handled in user code
Additional information: Code generated using the T4 templates for Database First and Model First development may not work correctly if used in Code First mode. To continue using Database First or Model First ensure that the Entity Framework connection string is specified in the config file of executing application. To use these classes, that were generated from Database First or Model First, with Code First add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception.
So, I figured I needed the default Identity context to use Identity, and use the custom Model First context for everything else. Not the preferred solution, but acceptable.
- Rolled everything back
- Import Identity tables from database
- (Optional) Created entities via the Model First approach
- Generated database script
Both the normal project and a quick sanity check test project have the same problem with the AspNetUserRoles table. That is a junction table, and when importing it in the EF designer, everything is OK. You won't see it since it is a many to many relationship, and when inspecting the association between AspNetRole and AspNetUser it looks good.
Designer and mapping details:
However, when generating the sql script, EF modifies the keys.
Designer and mapping details:
Generated SQL script:
In EF, you can't change the names of the mappings in the designer (thread on social.msdn.microsoft.com).
Subsequently the creation of a new user wil fail, using the originally created context because the junction table contains the wrong columns:
Server Error in '/' Application.
Invalid column name 'UserId'.
Invalid column name 'UserId'.
Invalid column name 'UserId'.
Invalid column name 'RoleId'.
Invalid column name 'UserId'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.SqlClient.SqlException: Invalid column name 'UserId'. Invalid column name 'UserId'. Invalid column name 'UserId'. Invalid column name 'RoleId'. Invalid column name 'UserId'.
Source Error:
Line 89: {
Line 90: var user = new ApplicationUser() { UserName = model.Email, Email = model.Email };
Line 91: IdentityResult result = await UserManager.CreateAsync(user, model.Password);
Line 92: if (result.Succeeded)
Line 93: {
What is the solution? Are there any alternatives than trying to change the generated script, or moving to Code First?
c# - 不能隐式转换类型“bool?” '布尔'
我想在 boostrap identity 2.0 注册表单中添加一个复选框,以确保用户同意网站的条款和条件。出于某种原因,我得到了错误Cannot implicitly convert type 'bool?' to 'bool'
,我不确定为什么。
AccountViewModel.cs
注册.cshtml
网站.css
我认为复选框是真还是假,布尔值也是如此。
asp.net-mvc - ASP.NET Identity 2.0 上下文将“1”添加到表名。
我不知道为什么会这样。我有继承自 IdentityDbContext 的 DbContext:
所以当我尝试执行简单的代码时。就像是
我得到一个例外Invalid object name 'dbo.AspNetRoles1'
为什么 EF 决定在表名中添加“1”?重点是什么?