2015-09-25 69 views
3

我試圖通過電子郵件確認爲我的Web應用程序實現註冊過程。我正在使用IdentityServer3.AspNetIdentity服務。如何擴展Microsoft.AspNet.Identity.IUser <TKey>

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延伸到我有機會獲得姓氏和名字屬性的效果?

+0

您應該創建自己的用戶類並將其作爲類型參數傳遞。 – SLaks

回答

1

這裏TUserIdentityServer3中的一個自定義實現的類,它從用戶身份的IdentityUser繼承。

您無法訪問這些屬性,因爲TUser是基類IdentityUserIUser所代表的IdentityServer3.Host.WebHost.AspId.User的對象。

Quickwatch將顯示對象屬性,但不會顯示在智能感知中。

您需要將TUser轉換爲IdentityServer3.Host.WebHost.AspId.User

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

這應該給你提供解決方法。