gpt4 book ai didi

asp.net - ASP MVC 用户配置文件

转载 作者:行者123 更新时间:2023-12-04 13:55:12 24 4
gpt4 key购买 nike

我过去做过 MVC,但我是 ASP 和 ASP MVC 的新手。到目前为止,我真的很喜欢 ASP MVC 为我提供的便利,但我无法弄清楚如何更好地控制用户。默认情况下,MVC 提供了一个最小的用户注册表。我已经环顾了很多,但我仍然有两个问题:

  • 如何使用户数据库成为我项目中的本地数据库?我认为 SQLEXPRESS 用于存储用户值,这似乎是一个神奇的过程。我如何消除魔法?我想对这个数据库的位置有更多的控制。
  • 这就引出了另一个问题:如何扩展用户?我一直在阅读配置文件,但我仍然对一些事情感到困惑。如何准备个人资料并将其与用户关联?什么用作外键?而且,在我的 Controller 中,我如何访问用户的各个部分,如用户名、电子邮件,甚至从个人资料(如名字、姓氏)访问(尽管我猜有一次当我在本地拥有个人资料数据库和用户数据库时,我可以运行sql 命令来检索数据)

  • 我真的很感激一些指向正确资源和/或 ASP.NET 最佳实践的指针

    最佳答案

    我会先阅读这个官方Microsoft article关于扩展 ASP.NET Membership API。它谈到创建额外的表来存储有关用户的附加信息。

    成员(member)资料库

  • 如果您有一个保存所有其他网站信息的现有数据库,您可以运行 aspnet_regsql.exe 工具来生成必要的用户表。然后您需要修改您的 web.config 并添加 SqlMembershipProvider 以及您的连接字符串。
  • 如果您正在创建一个新项目并且没有数据库,请从一个已经启用 Membership 的新 MVC 项目开始。您的数据库将在首次使用时创建在 App_Data 文件夹中,您可以将其附加到您的 SQL/SQLEXPRESS 服务器。然后只需更改连接字符串以使用数据库服务器而不是本地文件即可。

  • 创建附加表

    这部分实际上非常简单,包括几个简短的步骤:
  • 创建一个新表,即 UserProfiles
  • 添加 uniqueidentifier列作为主键,并在 aspnet_Users 表中添加外键
  • 添加要存储的任何其他字段(电话、地址、性别等)
  • 如果您使用的是 LINQ-to-SQL 或 Entity Framework ,则只需将所需的表拖到设计器上,就可以查询 Membership 表了。

  • 这是一个关于使用的小示例

    将此代码段添加到负责配置文件/帐户信息的存储库。
    public aspnet_User GetUser()
    {
    MembershipUser user = Membership.GetUser();
    return db.aspnet_Users.SingleOrDefault(u => u.UserId == user.ProviderUserKey);
    }

    然后在您的模型中,您可以获取用户并访问存储在 UserProfiles 表中的其他信息。
    AccountRepo accountRepo = new AccountRepo();
    aspnet_User user = accountRepo.GetUser();
    string Address = user.UserProfile.Address; // bingo!

    仅此而已!

    这显然是一个简单的例子,您应该检查用户是否为空,您还可以创建一个类,负责返回有关用户的必要信息,实现缓存等。

    关于asp.net - ASP MVC 用户配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4138290/

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