gpt4 book ai didi

c# - 使用 ASP.NET MVC 和 SqlMembershipProvider 在哪里存储额外的用户详细信息?

转载 作者:太空狗 更新时间:2023-10-29 18:30:35 25 4
gpt4 key购买 nike

因此,我正在创建一个 ASP.NET MVC 网站。

它有一个相当复杂的用户注册页面,包含很多字段。我的问题是,我应该在哪里坚持这个?成员(member)提供者工具创建的用户表不包含这些列,我对存储每个用户的附加信息的最佳做法感到困惑?

这是配置文件提供者发挥作用的地方吗?它们是如何工作的?如果不是,您还如何保留和存储 MembershipProvider 表的库存列中未提供的其他用户详细信息?

任何人都可以向我指出一些关于如何处理这种情况的资源,如何在我需要时访问这些额外的用户详细信息,如何使用所有这些信息创建新用户等。

最佳答案

这就是 ASP.NET 配置文件提供程序的用武之地。您可以使用它来存储您想要的有关用户的任何配置文件信息。您需要做的就是在 web.config 文件中添加所需的字段,MSDN Link on how to configure the profile fields in web.config file .总而言之,您只需将要存储的名称和类型值添加到配置文件元素的属性节点。这是一个例子:

<profile enabled="true">
<properties>
<add name="Name" />
<group name="Address">
<add name="Street" />
<add name="City" />
<add name="Zip" type="System.Int32" />
</group>
</properties>
</profile>

在 ASP.NET Webforms 中,Visual Studio 会自动创建一个强类型的配置文件类,该类将引用您的自定义配置文件属性。在 MVC 中,这不会发生。要引用用户的个人资料信息,只需调用 HttpContext.Profile["PropertyName"]。一个例子:

HttpContext.Profile["Name"] = name;
HttpContext.Profile.GetProfileGroup("Address")["Zip"] = zip;

编辑:正如安迪所说,如果您想对这些属性运行查询,使用默认的 SqlProfileProvider 并不是很好。他是完全正确的,也许我最初应该注意到这个限制。存在此限制是因为 SqlProfileProvider 将所有配置文件数据存储在三列中:PropertyNames 和 PropertyValuesString/PropertyValuesBinary。所有的键都存储在 PropertyNames 字段中,可以存储为字符串的值存储在 PropertyValuesString 字段中,等等。这意味着很难执行类似“Select * from aspnet_Profile where Age > 10”的查询。

关于c# - 使用 ASP.NET MVC 和 SqlMembershipProvider 在哪里存储额外的用户详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1139825/

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