Tôi đang cố gắng điều hướng lỗ đen đó là triển khai tùy chỉnh Thành viên danh tính. Mục tiêu của tôi ngay bây giờ chỉ đơn giản là để có được dòng này từ ApiController
của tôi để lấy một cách chính xác UserManager tôi:Triển khai thành công UserManager tùy chỉnh <IUser> trong Identity 2.0
public IHttpActionResult Index()
{
var manager = HttpContext.Current.GetOwinContext().GetUserManager<UserManager<MyUser,int>>();
//manager is null
}
Dưới đây là thiết lập của tôi. Trong Cấu hình Startup
's của tôi, tôi lập WebAPI và thêm OwinContext tôi:
app.CreatePerOwinContext<UserManager<MyUser,int>>(Create);
My Tạo phương pháp:
public static UserManager<User,int> Create(IdentityFactoryOptions<UserManager<MyUser,int>> options, IOwinContext context)
{
return new UserManager<MyUser,int>(new UserStore(new DbContext()));
}
phần còn lại là việc thực hiện cơ bản nhất mà tôi có thể làm.
myuser:
public class MyUser : IUser<int>
{
public int Id { get; set; }
public string UserName { get; set; }
}
MyUserStore:
public class MyUserStore : IUserStore<MyUser,int>
{
private IdentityDbContext context;
public MyUserStore(IdentityDbContext c)
{
context = c;
}
//Create,Delete, etc implementations
}
MyDbContext:
public class MyDbContext : IdentityDbContext
{
public MyDbContext() : base("Conn")
{
}
}
Đây là tất cả vì lợi ích của việc học cách nhận dạng hoạt động, mà tôi khá thuyết phục không người ta thực sự biết. Tôi muốn có thể tùy chỉnh đầy đủ người dùng và vai trò của mình sau cùng, tránh IdentityUser của Microsoft.
Một lần nữa, vấn đề của tôi ngay bây giờ là trong bộ điều khiển của tôi, tôi nhận được null
khi cố gắng truy xuất UserManager của mình.
Bất kỳ và tất cả trợ giúp đều được đánh giá cao.
Tuyên bố khá lớn về "tìm hiểu cách thức hoạt động của Danh tính, điều mà tôi khá thuyết phục không ai thực sự biết". Mã nguồn biết. Mã nguồn có sẵn thông qua trình biên dịch ngược. – trailmax
Đó là một biểu hiện của sự thất vọng của tôi khi tôi không thể tìm thấy rất nhiều ví dụ – Jonesopolis