asp.net - 使用自定义成员资格提供程序时,在 ASP.NET 中推荐的用户特定持久变量存储方法是什么?

标签 asp.net session session-variables membership-provider custom-membershipprovider

我有一个 ASP.NET 应用程序,它使用自定义 MembershipProvider 来允许用户登录并访问某些功能。 MembershipProvider 使用 ASP.NET 的内置表单例份验证来设置 cookie 并跟踪用户是谁。

现在我已经让用户登录了,存储 session 的用户特定信息的最佳方式是什么?过去,我只使用 session 变量,即 Session["ReputationLevel"] = "4230"; (我的应用程序实际上没有信誉级别变量,这只是一个示例)。使用 MembershipProvider 时这仍然是最好的方法吗?以某种方式将此信息构建到提供程序本身中,还是构建到自定义 MembershipUser 实现中会更好吗?如果我将所有内容保留在 session 中,我想当 MembershipProvider 指示用户已注销时我必须放弃 session ......?

很抱歉,如果这个问题含糊不清。过去几年我主要从事 ColdFusion 开发,但对于其中一些 ASP.NET 技术还是比较陌生。我认为 MembershipProvider 功能可以满足我需要的一切,但我现在发现我的实现中仍然存在一些漏洞(在本例中是存储附加数据的位置)。

This question appears to be similar ,但似乎并不完全符合我的要求。

最佳答案

如果您想在 session 之外保留信息,最好按用户将其存储在数据库中。有几种方法可以做到这一点:

  • 您可以根据需要手动存储和读取 SQL 表中的数据,从而自行实现 — 可能使用运行时缓存来避免每次请求时都访问数据库。
  • 您可以在自定义成员(member)资格提供程序中扩展 MemberShipUser 并向其中添加属性。 Here is a walkthrough...
  • 您可以使用 ASP.NET 配置文件,这可能是最简单的方法,并且它还支持为唯一的未经身份验证的用户存储数据。 Here's a walkthrough for profiles, although there are several more out there.

关于asp.net - 使用自定义成员资格提供程序时,在 ASP.NET 中推荐的用户特定持久变量存储方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5262647/

相关文章:

javascript - 使用 Javascript 文件读取 ASP.Net 项目中 Web.config 的配置设置

php - 如何使用 jQuery 和 PHP 跨多个页面维护 GET Url 参数?

php - 使用 Yii session 进行负载均衡

ASP.NET;几个 session 变量或一个 "container object"?

c# - 将数据表导出到 Excel asp

c# - 如何将数据表存储在缓存中以重用它?

ruby-on-rails - Rails 教程 3.2 第 8 章,无法注销以销毁 session 中的 current_user

ruby-on-rails - Rails v3 session 销毁不起作用?

c# - Blazor 个人帐户失败并显示 "ArgumentException: The path in ' 值'必须以 '/' 开头。 (参数 'value')”

java - AppEngine 和 session