使用 SimpleMember/Sql Server CE, MongoDB 管理用户配置文件
本文关键字:MongoDB 管理 用户 配置文件 CE SimpleMember Sql Server 使用 | 更新日期: 2023-09-27 18:36:16
我选择使用mongodb
作为以域为中心的数据的存储。我正在寻找official mongodb providers
将它们集成到项目中ASP.NET MVC
以保留单个应用程序数据库。没有官方提供商,可用的提供商看起来不成熟/稳定。所以我决定按原样使用简单的会员资格。
如果可能的话,如何从AccountController
中删除特定于Entity Framework
的代码?
您将如何管理同时具有SimpleMembership UserProfile
和MongoDB
User
的用户配置文件?
例
在单独的程序集[project-name].domain
中有两个类:
public class Event {
public DateTime ScheduledDate { get; set; }
public String Name { get; set; }
public Location Location { get; set; }
}
public class User {
public String Name { get; set; }
public List<Events> AssociatedEvents { get; set; }
}
如果我向User
添加UserProfileId
,这将是一个解决方案吗?
public class User {
public Int32 UserProfileId { get; set; }
public String Name { get; set; }
public List<Events> AssociatedEvents { get; set; }
}
使用appSetting中的connectionString。
您需要下载上述分支,构建并更改现有的dll引用以使用新的dll。
然后。。。
使用您的配置:
<appSettings>
<add key="MONGOLAB_URL" value="mongodb://localhost/ASPNETDB"/>
</appSettings>
。上面的值将被 AppHarbor/Mongolab 替换(如果您有应用程序的其他部分可以工作,那么这是正确的)
<providers>
<clear />
<add name="MongoDBMembershipProvider" type="MongoDB.Web.Providers.MongoDBMembershipProvider"
applicationName="/" appSettingsConnectionStringKey="MONGOLAB_URL" collection="Users"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" />
</providers>
所以在上面的配置中,它有appSettingsConnectionStringKey参数。自定义提供程序中的代码读取 appSettingsConnectionStringKey 值"MONGOLAB_URL",然后使用它来读取 ConfigurationManager.AppSettings["MONGOLAB_URL"],显然,它必须与上面的应用键名称匹配。
[1]: https://github.com/osuritz
[2]: https://github.com/osuritz/MongoDB.Web/commit/b1e9534023ca8cb2e74eb1adbdcb1cd7dd693efa
您是否需要 MongoDB 的 AspNet.Identity 实现来替换 MVC 5 中标准 AccountController 中默认 ASP.NET AspNet.Identity.EntityFramework 用法?如果是 - 也许这对你有帮助 - 完全实现MongoDB.AspNet.Identity。