如何实施身份认同

时间:2014-01-13 18:10:30

标签: c# extension-methods asp.net-identity

我对IIdentity身份有疑问,通常在网络应用中你可以说:

 HttpContext.Current.User.Identity.

它有几个你可以轻松检索的属性,非常方便。

所以我有两个问题:

1)我正在使用ASP.NET Identity(不是成员资格),但当我尝试扩展HttpContext.Current.User.Identity

public static int GetUserAge(this IIdentity identity){}

要导入:我必须使用的IIdentity身份,使用System.Security.Principal;,但它与Microsoft.AspNet.Identity在同一个包中吗?

2)默认情况下,方法和属性,如User.Identity.Name / User.Identity.Id,/ User.Identity.GerUserId()等,它们是如何实现的?每次执行都要去数据库检索它吗?或者节省会话或......?

因为我想创建一个扩展程序,其工作方式与默认工作方式大致相同......

1 个答案:

答案 0 :(得分:0)

所以AspNet.Identity只是添加扩展方法,它们将语法糖隐藏到一个ClaimsIdentity,并将两个声明类型映射到辅助方法getter。

GetUserName() => ClaimTypes.Name
GetUserId() => ClaimTypes.NameIdentifier.