Jon*_*lis 7 c# asp.net-web-api owin asp.net-identity asp.net-identity-2
我正在尝试导航黑洞,这是身份成员身份的自定义实现.我现在的目标只是让我的这一行ApiController正确检索我的UserManager:
public IHttpActionResult Index()
{
var manager = HttpContext.Current.GetOwinContext().GetUserManager<UserManager<MyUser,int>>();
//manager is null
}
Run Code Online (Sandbox Code Playgroud)
这是我的设置.在我Startup的配置中,我设置了WebApi并添加了我的OwinContext:
app.CreatePerOwinContext<UserManager<MyUser,int>>(Create);
Run Code Online (Sandbox Code Playgroud)
我的创建方法:
public static UserManager<User,int> Create(IdentityFactoryOptions<UserManager<MyUser,int>> options, IOwinContext context)
{
return new UserManager<MyUser,int>(new UserStore(new DbContext()));
}
Run Code Online (Sandbox Code Playgroud)
其余的是我可以做的最基本的实现.
MYUSER:
public class MyUser : IUser<int>
{
public int Id { get; set; }
public string UserName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
MyUserStore:
public class MyUserStore : IUserStore<MyUser,int>
{
private IdentityDbContext context;
public MyUserStore(IdentityDbContext c)
{
context = c;
}
//Create,Delete, etc implementations
}
Run Code Online (Sandbox Code Playgroud)
MyDbContext:
public class MyDbContext : IdentityDbContext
{
public MyDbContext() : base("Conn")
{
}
}
Run Code Online (Sandbox Code Playgroud)
这一切都是为了学习身份如何运作,我相信没有人真正知道.我希望能够最终完全自定义我的用户和角色,避免使用Microsoft的IdentityUser.
同样,我现在的问题是在我的控制器中,我null在尝试检索我的UserManager 时得到了.
非常感谢任何和所有的帮助.
我有几个错误,但主要的一个是我的 Startup 类看起来像:
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseWebApi(new WebApiConfig());
app.CreatePerOwinContext(MyDbContext.Create);
app.CreatePerOwinContext<MyUserManager>(MyUserManager.Create);
}
}
Run Code Online (Sandbox Code Playgroud)
当然,OWIN 管道会在触发 WebAPI 调用后插入我的依赖项。改变它们是我的主要问题。
此外,我终于在谷歌搜索中找到了这个很棒的指南。它几乎回答了我所得到的一切。我需要实现一个具体的类UserManager<MyUser,int>
我希望这能够帮助以后的人。
| 归档时间: |
|
| 查看次数: |
10405 次 |
| 最近记录: |