几天前,我找到了Ben Foster关于MVC,Identity和OWIN的非常好的教程。教程为here
我刚刚完成了教程,我发现在尝试覆盖功能' 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;
}
}
答案 0 :(得分:3)
您可以尝试查看该版本吗? git上的文件使用Microsoft.AspNet.Identity.Core.dll版本1,现在它是vervion 2.尝试内部的ClaimsIdentityFactory
答案 1 :(得分:0)
我创建了一个与上述类似的索赔工厂AppUserClaimsIdentityFactory,但想添加有关如何使用工厂的说明。我将以下行添加到AppUserManager构造函数中,并根据需要进行了工作:
public class RockSongs:MongoBaseModel
{
[BsonElement("Name")]
public string Name { get; set; }
[BsonElement("Singer")]
public string Singer { get; set; }
}