我正在尝试通过电子邮件确认为我的网络应用程序实施注册过程。我正在使用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 界面。在我实现的函数中,传入的用户上下文是正确的,但是我无法访问您在以下两个图像中可以看到的所有属性。
http://img5.fotos-hochladen.net/uploads/b6aa42c662dd1kv063h4g5p.png http://img5.fotos-hochladen.net/uploads/d75b1e6462dd1wi9clqj6e7.png
您知道如何将Microsoft.AspNet.Identity.IUser扩展到我可以访问属性Lastname和Firstname的效果吗?
答案 0 :(得分:1)
此处TUser
是IdentityServer3
中自定义实现的类,它继承自IdentityUser
以获取用户身份。
您无法访问这些属性,因为TUser是基类IdentityServer3.Host.WebHost.AspId.User
或IdentityUser
所代表的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";
这可以为您提供解决方法。