9

介绍 ASP.NET Identity – ASP.NET 应用程序的成员系统

http://blogs.msdn.com/b/webdev/archive/2013/06/27/introducing-asp-net-identity-membership-system-for-asp-net-applications.aspx

现在,当使用 ASP.NET 4.5 创建新的 Web 应用程序时,我们有了新的“ASP.NET Identity”。

我设法让我的应用程序通过内置的注册/登录/更改密码功能使用我的 MSSQL 数据库,但我不确定如何像过去那样进行其他操作(尤其是“ASP.NET 配置”已经消失)。由于这是新事物,因此我找不到任何好的指南,或者我的想法有误。

  1. “[dbo].[AspNetUsers]”现在在 nvarchar(128) 中具有 [Id],而不是 uniqidentifier,但仍为 GUID 格式
  2. Membership.GetUser().ProviderUserKey 不再起作用,我如何获取 ID?(通过 User.Identity.Name 获取用户名,然后查询 [dbo].[AspNetUsers]?”
  3. 除了直接操作数据库之外,如何创建(管理)角色?(和之前的 System.Web.Security.Roles.CreateRole 方法一样)

ETC

如果任何人都可以提供有关如何实现此“ASP.NET Identity”的详细介绍的链接,那将是最好的

非常感谢..

更新

我发现可以通过以下方式检索 Id:(new System.Linq.SystemCore_EnumerableDebugView(((System.Security.Claims.ClaimsPrincipal)(((System.Web.UI.Page)(this)).User)).Claims)) .Items[0].值

它在索赔中..但看起来效率不高。

4

3 回答 3

2

我在同一条船上。我找到了一种更简洁的方法来获取用户 ID

 var identity = new ClaimsIdentity(User.Identity);
 var id = identity.GetUserId();
于 2013-10-18T20:04:29.350 回答
1

从 .net 4.5 开始,所有基于身份的信息都作为基于声明的对象返回。如果您使用的是 Visual Studio 2012,这看起来是在“Internet 应用程序”的 asp.net MVC 模板中找到的简单身份提供程序的更新版本。关于您引用的链接,还有一个示例项目应该让您开始https://github.com/rustd/AspnetIdentitySample您是否还有其他特定问题?

于 2013-10-18T19:16:11.310 回答
0

您可以使用

User.Identity.GetUserId()
于 2013-10-21T20:23:57.360 回答