正如标题所说,我可以这样做吗?这是我试过的:
private static string GetImage(this IIdentity identity)
{
var claim = ((ClaimsIdentity) identity).FindFirst("Image");
return (claim != null) ? claim.Value : string.Empty;
}
public class User : IdentityUser
{
public byte[] Image { get; set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<User> manager)
{
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
userIdentity.AddClaim(new Claim("Image", System.Text.Encoding.Default.GetString(Image)));
return userIdentity;
}
}
现在我发现的问题是在GetImage方法中,返回值是Image字段的命名空间。它实际上并不返回值。我假设这是因为在FindFirst方法中它在返回值之前执行.ToString(),这可以解释为什么它获取类型。我的数据库有价值,我可以通过用户属性访问图像,但我想知道我是否可以将其添加到声明中,是否有办法?