问题标签 [asp.net-identity-3]

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 投票
1 回答
4106 浏览

entity-framework - 如何告诉 UserManager.FindByNameAsync 包含关系?

我将 ASP.NET Identity 2.2.0 与 ASP.NET MVC 5.2.3 和 Entity Framework 6.1.2 一起使用。

我使用带有 Code First 的 ASP.NET Identity 向我的数据库添加了一个新属性及其对应的表,如下所示:

现在,通过一些行动,当我打电话时:

它确实为用户提供了正确的信息UserTypeId,因为这是一个原语,但它没有获得类的UserType属性ApplicationUser

如果我不使用此抽象,我将调用Entity Framework 中LoadProperty<T>的方法或方法以在类中包含名为(类型)的导航属性或关系。IncludeTypeUserTypeApplicationUser

我如何使用 ASP.NET Identity 来做到这一点UserManager?我怀疑唯一的方法是在我的自定义UserManager派生类中覆盖这个方法并自己做?

0 投票
1 回答
5532 浏览

c# - 我们可以扩展 HttpContext.User.Identity 以在 asp.net 中存储更多数据吗?

我使用 asp.net 身份。我创建了实现用户身份的默认 asp.net mvc 应用程序。应用程序使用 HttpContext.User.Identity 来检索用户 ID 和用户名:

我能够自定义 AspNetUsers 表。我向此表添加了一些属性,但希望能够从 HttpContext.User 中检索这些属性。那可能吗 ?如果可能,我该怎么做?

0 投票
1 回答
479 浏览

c# - 管理员激活 ASP.NET Web API 用户

我需要阻止用户登录到我的 ASP.NET Web API 2.0 Identity 3.0 支持的网站,直到管理帐户“激活”用户确认的注册 ApplicationUser 帐户。

我已经实现了 EmailConfirmed 逻辑来验证 ApplicationUser 帐户是否已使用有效的电子邮件地址注册。现在我正在寻找一个合适的地方来对我添加的 ApplicationUser.Activated 属性进行检查,除非它被设置为 true,否则会阻止登录。

我已经对 OAuthAuthorizationServerProvider 类进行了一些研究,但我认为我将不得不真正花一些时间并了解 OAuth 2.0 才能进入其中。任何人都可以就如何以及在哪里对这样的 Activated 属性实施测试提出建议吗?

PS - 如果不明显,我正在使用不记名令牌身份验证。

0 投票
1 回答
3414 浏览

asp.net-web-api - web api - asp.net 身份令牌即使对于后续请求也会过期

我在 web api 中使用 asp.net 身份进行基于令牌的身份验证。

对于刷新令牌,我基于以下链接实现

我添加了以下两个类,并在启动配置中提到。

从我通过api单独使用用户名和密码调用的ui

http://域名/令牌

当我调用上面的 api 时,请求直接转到方法ValidateClientAuthentication

但在这种方法中,逻辑是,我们需要发送客户端 ID 和客户端密码。

在用户登录特定用户之前,我们如何知道这两个?

我认为工作流程应该是这样的,我们需要根据数据库检查用户名和密码,并且应该生成访问令牌和刷新令牌。

但在这里我在哪里做这个逻辑。

样本中提到的这个系统的工作流程是什么?

在这个系统之前,我会在我的应用程序中调用Common/login api,并在验证成功后,

我将调用代码以使用户登录

在上面的代码之后,我将根据用户身份生成访问令牌。

我已经多次尝试以下实现并且厌倦了流程。

帮助我了解这里提到的逻辑和流程。

SimpleAuthorizationServerProvider

SimpleRefreshTokenProvider

0 投票
1 回答
3814 浏览

c# - ASP.NET Identity 3.0 上的 IIdentityMessageService 等价物是什么?

在 ASP.NET Identity 2.X 上,我们可以通过库中IIdentityMessageService可用的接口配置通知基础结构,该接口Microsoft.AspNet.Identity.Core未升级到 3.0 版。

在 ASP.NET Identity 3.0 上配置消息传递基础结构的做法是什么?

0 投票
0 回答
42 浏览

claims-based-identity - “角色”类型的声明过于抽象

我已经构建了一个带有 asp.net 身份和不记名令牌身份验证的 web api。

我了解角色结果是真/假,并且声明是关于用户的更细粒度的陈述。

但是类型角色声明只是一个抽象的东西,就像“ProjectManager”之类的名称,它写在 NOWHERE 这个类型角色声明的权限是什么。我没有看到任何样本这样做,但在 2010 年存在索赔之前,我做了一个申请Roles N ---- M Permissions.

并且权限是

我在哪里可以看到这种带有角色声明的旧方法?

0 投票
1 回答
90 浏览

webforms - 用于基于云的应用程序的 ASP.NET Identity + WebForms?

简介:我的任务是决定如何为应该从旧 WebForms 应用程序演变而来的基于云的项目实施用户身份验证。我正处于决策过程的开始阶段,但我必须尽快做出决定;所以,我会感谢你的经验。

为什么选择 WebForms?该应用程序基于较旧的 WebForms 代码,因此它应该从 WebForms 代码开始。问题是应用程序应该很快准备好,因此必须尽可能地重用代码。此外,我们没有具备 MVC 工作知识的开发人员。一些权衡是必要的。但是,登录过程将是新的,并且可以使用 MVC 方法来实现。

新功能:旧代码是为在 Intranet Web 服务器上运行而构建的,用户使用简单的登录名登录。安全问题并没有那么复杂。该应用程序使用 ASP.NET 之前的标识——非常旧,应用程序的那部分应该被替换。将会有更多的用户组应该在单独的工作空间中工作(想想公司)。

新账户——认证:用户应使用有效的电子邮件地址申请注册。对于新用户,电子邮件应该被验证为存在,然后应该由该组的管理员批准。

授权:将允许用户仅使用某些数据。考虑使用单个数据库,其中一个组的用户应该被允许仅访问该组专用的部分。但是,可能有可能拥有更多权限的高级用户。

我应该专注于使用 ASP.NET Identity 吗?如果是,(不依赖于旧版本)我应该从当前处于 3.0.0-beta7 的 ASP.NET Identity 3 开始(参见https://github.com/aspnet/Identity.git),还是应该坚持使用第 2 版?

0 投票
1 回答
36 浏览

asp.net - ASP.NET Identity / OAuth:如何限制授予的权限,只允许进行身份验证?

当我看到ASP.NET Identity 的 OAuth 示例时,看起来它们总是向客户端应用程序授予某种特权:

在此处输入图像描述

我不希望被授予任何特权。我只想对用户进行身份验证。

我怎样才能做到这一点?

0 投票
2 回答
1107 浏览

asp.net - 使用实体框架包含身份用户不起作用

我在查询结果中包含我的身份用户时遇到问题。其他实体也很好,不管有多少层深。

这是我正在使用的模型。

和上下文:

两者都Building具有City以下属性:

我用来检索数据的查询:

结果 City 填充得很好,但是 ApplicationUser 不是。

这可能是命名问题吗?我已经尝试过UserId/UserAspNetUserId/AspNetUser作为属性名称,但没有成功。

我正在使用迁移来创建数据库。为用户创建的表名是 AspNetUsers。

我正在使用实体框架 7 beta 7,不确定这是否也适用于其他版本。

这些是 EF Migrations 生成的文件。

ApplicationDbContextModelSnapshot.cs

20150929181902_Init.cs

20150929181902_Init.Designer.cs

(我注意到在生成要上传的文件时,我忘记包含 Building > City 关系,但这对于示例来说无关紧要)

0 投票
2 回答
1826 浏览

asp.net-mvc - 具有外部登录的 MVC 5 身份的 userLogins 始终为 0

我有一个使用外部登录名运行身份的 MVC 5 站点。我只是稍微修改了它,使 f/l 名称和用户名与电子邮件分开。

我没有注册新用户,我只是通过 Fackbook 登录......(这可能是问题所在?)如果我通过 Facebook登录,它会在身份表中创建一个用户(但没有创建密码哈希)。

但是,当我导航到“管理”控制器时,它正在显示

External Logins: 0 [ Manage ]

当我单击时'manage',它会带我到“管理/管理登录”并显示一个 Facebook 按钮......但是在单击 FB 按钮时,我得到'an error has occurred'

查看管理控制器,我看到这个方法被击中,它收集用户登录的地方,它没有得到任何东西。

注意:UserManager.GetLoginsAsync总是返回 0 并且我已经验证User.Identity.GetUserId()是返回用户的 id ......它只是没有得到用户。我刚刚用一个新创建的本地用户尝试了这个。

如果存在现有用户登录,则此代码仅显示“删除”按钮...但是通过外部登录登录时没有创建用户登录。这是正常的吗?我期待一个 userLogin 被创建并引用到外部,但我不确定身份如何处理这方面......

我该如何解决这个问题,以便我的用户仍然可以取消关联他们的 FB 帐户?还是没有真实帐户可以取消关联,因为它是外部登录名并且从未真正注册为本地帐户?...这就是我所缺少的吗?这是预期的行为吗?

ChallengeResultPS:我必须在调用ExternalLoginAccountContoller 方法之前添加一行代码来终止任何现有会话:

这会导致任何问题吗?必须用这条线来修复 Identity 似乎很奇怪..(虽然它被谈论了很多)

编辑:我注意到在“IdentityUserLogins”表中,它显示了“Facebook”的 LoginProvider,而 userId 是我的用户。但是,ApplicationUserId 字段为空。将用户 ID 放入该字段后,“删除'按钮显示在管理页面中......我错过了什么?如何没有输入 applicationUserID?.. 默认身份的另一个修复?