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

asp.net - Web API 中的 ASP.NET 标识

我正在开发一个使用新的 ASP.NET Identity 进行身份验证的简单应用程序。由于我计划将来有一个移动应用程序,因此我将身份验证放在了 Web API 中,我从 Razor 网页(没有 MVC 或表单)从 jQuery 发布到该 API。到目前为止,post 工作正常并创建用户并将他们登录 - 在 API 端。

但是,我无法确定如何从那里开始。我需要设置 IsAuthenticated 以便我可以提供正确的页面,但它总是返回 false。由于 Identity 非常新,因此几乎没有可用的文档,而且我无法找到任何像从 Web API 运行它这样复杂的东西。

问:登录后从 Web API 中的身份验证返回以正确User.Identity.IsAuthenticated设置的正确方法是什么?

登录.cshtml

登录 Web API

0 投票
3 回答
11488 浏览

asp.net - MVC5 ApplicationUser 自定义属性

我正在尝试掌握 ASP.NET MVC 5 中引入的新会员系统,我遇到了一个小问题,我很确定您将能够帮助我解决这个问题。

我将以本教程为基础,并向 ApplicationUser 引入自定义属性,例如姓名、姓氏、出生日期等。

但是,我没有创建用户,而是尝试更新当前登录的用户。我正在查看当前用于更改密码的控制器方法。

例如,我将如何继续更新 ApplicationUser 的姓氏?我需要调用 DbContext 吗?

我希望我的问题很清楚。

0 投票
1 回答
15967 浏览

asp.net-mvc-5 - 使用asp.net身份更改当前用户的用户名后如何更改身份验证cookie

将 asp.net 身份版本 1.0.0-rc1 与 Entity Framework 6.0.0-rc1(随 Visual Studio 2013 RC 一起提供)一起使用。

试图让用户有机会改变他们的UserName. 下似乎没有该功能AuthenticationIdentityManager,因此我使用 EF 更改数据(获取当前用户的 User 对象,更改 UserName 并保存更改)。

问题是身份验证 cookie 保持不变,并且下一个请求失败,因为没有这样的用户。

过去通过表单身份验证,我使用以下代码来解决这个问题。

我应该如何处理 asp.net 身份来更新 cookie?

更新

以下代码似乎更新了身份验证 cookie。

剩下的问题是:如何IsPersistent从当前的身份验证 cookie 中提取值?

0 投票
3 回答
1230 浏览

visual-studio - 如何使用 MVC5RC/RTW 与现有数据库进行身份验证

我最初在 Identity 处于测试阶段时问了这个问题。从那时起,类和接口发生了很大变化,看起来RTW 版本比 RC 版本再次进行了一些修改。原则上我需要实现以下目标。

  • 针对我的用户表 tblMembers 验证本地登录,其中包含用户 ID 字段和密码,这是我需要验证的两项。
  • 可以通过 Controller.User 属性访问我的 tblMember 记录/类(在 MVC5 身份之前,我已经使用成员资格提供程序方法实现了这一点。)无论用户是通过 localuser 方法还是通过其他 OAuth 提供程序之一登录(推特、谷歌等)。
  • 尽管有登录方法,但能够显示我自己的自定义用户名。本地用户使用用户 ID 1234567 和密码登录,理想情况下我想显示“John Smith (1234567)”,无论身份验证方法如何(本地/Twitter 等)

最初我不确定我的成员类应该继承什么从我应该使用 IdentityUser 的 aspIdentitySample 项目中出现?

是否有任何将现有数据库/用户表与 ASP.NET 身份系统集成的新示例或更新示例?

0 投票
1 回答
1380 浏览

asp.net-mvc-5 - 在事务中运行 asp.net 身份功能的推荐方法是什么?

使用 asp.net 标识RTW 版本

我需要在事务中执行几个操作,包括UserMananger函数调用和我的其他操作DbContext(例如:创建新用户,将其添加到组并执行一些业务逻辑操作)。

我该怎么做?

我的想法随之而来。

交易范围

问题是:UserManager函数都是异步的,TransactionScope并不是为使用 async/await 而设计的。它似乎在 .Net Framework 4.5.1 中得到解决。但是我使用 Azure 网站来托管我的项目构建,所以我还不能以 4.5.1 为目标。

数据库事务

这似乎可行,但我该如何对其进行单元测试?

UserManager<>构造函数接受IUserStore<>,所以我可以轻松地存根它。

UserStore<>构造函数接受DbContext,不知道如何存根。

0 投票
2 回答
3989 浏览

c# - ASP.NET 身份外部登录 - 如何获取用于 API 调用的 Google 令牌?

刚刚试用了新的 ASP.NET Identity 登录系统并将 Google 添加为外部登录提供程序。
登录工作正常,但我找不到用于进一步 API 调用的身份验证令牌,例如

json = new WebClient().DownloadString(" https://www.googleapis.com/plus/v1/people/me?access_token= " + accessToken);

登录后我得到的唯一信息是姓氏、名字、电子邮件。有人可以告诉我令牌隐藏在结果中的位置吗?

或者我是否需要在我的 Startup.Auth.cs 中设置一些选项,其中设置了“app.UseGoogleAuthentication()”?

0 投票
4 回答
14911 浏览

entity-framework - 代码优先和身份与 Azure 表存储

我正在开发一个小型 Web 应用程序,而我刚刚达到了需要开始制定数据库决策的开发阶段。我最初的计划是在 Azure 上使用 MSSQL 使用 EF Code First,因为它只是简化了使用数据库的过程。然而,在调查我在 Azure 上的数据库托管功能时,我发现了 Azure 表存储,它为我打开了 NoSQL 的世界。

虽然 Internet 上充斥着关于 NoSQL 特性的讨论,但我设法收集到的最大原因之一是 NoSQL 将整个对象作为一个对象存储在数据库中,而无需将数据分解为有利于性能的各种表。虽然这听起来很吸引人,但 EF Code First 通过自动将对象组合在一起并将对象分离到 SQL 数据库中有效地消除了这个问题,而开发人员无需担心查询。

然而,我的主要问题是我找不到任何文档来使用 EF Code First 和 ASP.NET Identity 等 NoSQL 数据库。由于我的应用程序当前使用身份,我想避免切换到其他东西。

问:是否可以在 Azure 表中使用 Code First 和/或 Identity?


编辑:关于我的应用程序的一点点作为一个极端的简化,我的应用程序允许我的用户通过混合和匹配预配置的数据类型来创建自定义配置文件。例如,用户可以将任意数量的引用对象添加到他们的配置文件中,然后定义引用的值(即“做你自己;其他人都已经被占用了。”)。或者他们可以使用 Movie 对象来定义他们最喜欢的电影的集合(即“标题:Inception,年份:2010”)。平均而言,用户可以在其页面上轻松拥有 50 个或更多此类属性;他们可以拥有的属性数量没有限制。

使用这个例子,我可以很容易地看到我将如何使用 Code First 来实现它(Profile 有一个 Quote 对象列表和一个 Movie 对象列表)。我还不确定这将如何映射到 Azure Tables 等 NoSQL 数据库。因此,根据我的应用程序的需求,我不确定从 Code First 切换到 NoSQL 是否是一个合理的决定,因为我会失去这些特性和功能。

0 投票
1 回答
2374 浏览

asp.net-mvc - 如何从用户注册返回 MVC 错误消息到我的客户端浏览器

我在 MVC5 应用程序中使用 MVC5 进行身份管理。该代码正在运行,但是当用户尝试注册并且不使用相同的密码和确认密码时,我遇到了问题。我没有为此使用任何前端检查,因此将注册数据发送到服务器。在服务器上存在模型错误并且 ModelState.IsValid 返回 false:

这是我的控制器方法。当我检查 ModelState 的值时,我看到有一个错误:

我的 HTML:

错误是:

我如何安排将此消息返回到我的表单以便用户可以看到它?

我认为它应该显示在:

但这将如何发生?

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 投票
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 似乎注意到了声明属性。稍后从身份中检索属性时,这些属性为空。