如何扩展Microsoft.AspNet.Identity.IUser <tkey>

时间:2015-09-25 14:04:01

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

我正在尝试通过电子邮件确认为我的网络应用程序实施注册过程。我正在使用IdentityServer3.AspNetIdentity服务。

public class AspNetIdentityUserService<TUser, TKey> : UserServiceBase
    where TUser : class, Microsoft.AspNet.Identity.IUser<TKey>, new()
    where TKey : IEquatable<TKey>
{

我的问题是 TUser ,它需要 Microsoft.AspNet.Identity.IUser 界面。在我实现的函数中,传入的用户上下文是正确的,但是我无法访问您在以下两个图像中可以看到的所有属性。

enter image description here

enter image description here

http://img5.fotos-hochladen.net/uploads/b6aa42c662dd1kv063h4g5p.png http://img5.fotos-hochladen.net/uploads/d75b1e6462dd1wi9clqj6e7.png

您知道如何将Microsoft.AspNet.Identity.IUser扩展到我可以访问属性Lastname和Firstname的效果吗?

1 个答案:

答案 0 :(得分:1)

此处TUserIdentityServer3中自定义实现的类,它继承自IdentityUser以获取用户身份。

您无法访问这些属性,因为TUser是基类IdentityServer3.Host.WebHost.AspId.UserIdentityUser所代表的IUser的对象。

Quickwatch会显示对象属性,但它不会出现在intellisense中。

您需要将TUser转换为IdentityServer3.Host.WebHost.AspId.User

var user = new TUser() as IdentityServer3.Host.WebHost.AspId.User;
user.FirstName = "Tester";
user.LastName = "Doer";

这可以为您提供解决方法。