gpt4 book ai didi

asp.net-mvc-4 - 将 MVC 4 SimpleMembership 与现有的数据库优先 EF 模型结合使用

转载 作者:行者123 更新时间:2023-12-02 19:53:18 25 4
gpt4 key购买 nike

我第一次尝试在 MVC 4 中使用 SimpleMembership,并且我已经拥有一个现有数据库和基于它创建的 EF5 模型!我搜索了很多,但我找不到如何在我的案例中使用它以及如何将所有内容都放在我自己的模型下。

如果有人能给我一个想法,那就太好了。

谢谢

最佳答案

纯粹作为引用,创建 ASP.NET MVC 4 Web 应用程序项目的新 Internet 应用程序模板(即通过"file">“新建项目”)可能是个好主意。

如果你看AccountController ,正如 @zms6445 所说,它装饰有 InitializeSimpleMembership属性。您可以在根目录下 Filters 文件夹中的 InitializeSimpleMembershipAttribute.cs 文件中找到此属性的实现。

在这里,这是拼图中缺失的部分 - 您需要连接现有数据库,以便 SimpleMembershipProvider 使用它。 。这是您需要的代码:

private class SimpleMembershipInitializer
{
public SimpleMembershipInitializer()
{
try
{
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection("CONNECTION_STRING_NAME", "USER_TABLE", "USER_ID_FIELD", "USER_NAME_FIELD", autoCreateTables: true);
}
}
catch (Exception ex)
{
throw new InvalidOperationException("Something is wrong", ex);
}
}
}

一些注意事项:

  1. CONNECTION_STRING_NAME是 web.config ConnectionStrings 中的一个条目 - 您不能在此处使用模型连接字符串 - SimpleMembershipProvider不识别该格式!您需要指定System.Data.SqlClient连接字符串,例如

  2. USER_TABLE是数据库中用于保存额外用户信息(例如名字、姓氏等)的表。它通过 USER_ID_FIELD 链接到自动生成的表。

  3. USER_ID_FIELD通常是用户表的主键。它的类型必须是 int .

  4. USER_ID_NAME是用户的唯一名称,可以是电子邮件地址。

  5. autoCreateTables设置为true确保创建 SimpleMembership 工作所需的表(如果它们尚不存在)。

当然,只有当您通过AccountController访问页面时,此代码才会被触发。 ,因为它已被属性修饰。您可以在其中放置一个断点并查看它的运行情况。

这应该可以帮助您入门 - 如果您遇到困难,互联网应用程序模板是一个非常好的模板。

希望这有帮助。

关于asp.net-mvc-4 - 将 MVC 4 SimpleMembership 与现有的数据库优先 EF 模型结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15112214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com