【发布时间】:2014-08-10 11:48:31
【问题描述】:
我正在尝试构建一个简单的 MVC 应用程序,该应用程序将 EntityFramework 持久性替换为读取/写入 XML 文件的持久性。我不需要任何花哨的东西,比如角色或声明,我只需要确保用户经过身份验证。
根据我的研究,我认为我需要创建一个自己的 UserStore 并修改 IdentityConfig.cs 中的以下代码以改用此自定义 UserStore。这是正确的方法吗?对我来说,这似乎是一个经典的依赖注入解决方案。创建 UserStore 的新实现并将其注入 ApplicationUserManager。
public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
{
var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>()));
// Configure validation logic for usernames
...
return manager;
}
}
编辑:
按照MVC 5 Custom UserStore 中的示例,我在尝试创建这个自定义用户存储时遇到了麻烦,特别是
public class MyUserStore : IUserStore<User> { }
我不知道 User 应该是什么类型。我假设这是一个我需要创建实现特定接口的类(我猜是 IUser)。我已经为这种未知的用户类型尝试了几十种变体,但是当我尝试在 IndentityCofig.us 中实现以下内容时会发生什么
var us = new XmlUserStore<???>(someXmlDoc);
var manager = new ApplicationUserManager(us);
我收到一个语法错误,告诉我非泛型类型 MyXmlStore 不能与类型参数一起使用。
【问题讨论】:
标签: dependency-injection asp.net-mvc-5 asp.net-identity