2014-10-08 58 views
3

幾天前,我發現了Ben Foster關於MVC,Identity和OWIN的非常好的教程。本教程是here嘗試覆蓋ClaimsIdentityFactory上的CreateAsync函數

我剛剛完成教程,並且發現嘗試覆蓋函數「CreateAsync」的問題。 Visual Studio不允許這樣做。

這是代碼:

public class AppUserClaimsIdentityFactory : ClaimsIdentityFactory<AppUser> 
{ 
    public override async Task<ClaimsIdentity> CreateAsync(
     UserManager<AppUser> manager, 
     AppUser user, 
     string authenticationType) 
    { 
     var identity = await base.CreateAsync(manager, user, authenticationType); 
     identity.AddClaim(new Claim(ClaimTypes.Country, user.Country)); 

     return identity; 
    } 
} 

任何人都知道我怎樣才能解決這個問題呢?

解決方案

由於@ETorre,這是最後的代碼!

public class AppUserClaimsIdentityFactory : ClaimsIdentityFactory<AppUser, string> 
{ 
    public async override Task<ClaimsIdentity> CreateAsync(UserManager<AppUser, string> manager, 
      AppUser user, string authenticationType) 
    { 
     var identity = await base.CreateAsync(manager, user, authenticationType); 
     identity.AddClaim(new Claim(ClaimTypes.Country, user.Country)); 

     return identity; 
    } 
} 
+2

您可以將代碼附加爲文本代替。沒有人想調試代碼的圖片。 – Matthew 2014-10-08 14:04:51

+1

謝謝,我剛剛將代碼附加爲文本。 @Matthew – 2014-10-08 14:13:39

回答

3

你可以試試看看版本?在git上的文件使用Microsoft.AspNet.Identity.Core.dll版本1,現在它是vervion 2.嘗試內部的ClaimsIdentityFactory

+0

謝謝@ETorre,我會試試! – 2014-10-08 14:11:55

+0

這工作正常!再次感謝@ETorre! – 2014-12-22 23:53:03