问题标签 [asp.net-profiles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
197 浏览

c# - 在我的 Web 应用程序中为用户配置文件采取的最佳方法是什么?

我目前正在构建一个 ASP.NET MVC Web 应用程序。我的站点安全性(当前)构建在我扩展的 System.Web.Security Membership 模型的扩展之上:

  • 授权属性
  • 会员提供者
  • 角色提供者

这对安全机制来说已经足够了——尽管它使很多事情变得复杂,我本可以更简单地完成。但是,它已经完成了,这是一次非常有用的学习经历。尽管稍后,我仍可能将其全部删除并用更特定于该站点的模型替换它 - 我想将我的所有用户配置文件信息保存在一个单独的表中,并专门为该站点建立索引和构建。

现在我已经开始开发用户个人资料了。我需要存储比基本用户登录系统更多的用户信息。我已经检查了 ProfileProvider,它似乎是一个完全不同的蠕虫罐头。我喜欢它足够灵活,我可以直接从 web.config 配置用户配置文件,而无需重新构建我的对象,而 ProfileProvider 会处理其余部分。不过,让我感到恐惧的是 PITA 会导致在我的数据库上运行查询或报告。这个事实可能会影响我对 ProfileProvider 的判断。ProfileProvider 甚至是用于此目的的正确模型吗?

我应该走与定制现有系统或定制构建自己的系统相同的道路吗?

一方面,ProfileProvider 的自定义可能是一种有用的学习体验,但另一方面,我可以看到这迅速成为报告和查询的噩梦。但是我自己的编码将使查询/报告变得非常简单,但我不会学得更少。

如果有人对 ProfileProvider 模型的使用或定制有任何经验(如果这确实是我应该使用的),并且可以为我指明有用的阅读材料的方向,或者可以引导我朝着更有用的方向前进,我将不胜感激它。

提前致谢。

0 投票
1 回答
359 浏览

asp.net-membership - 匿名和经过身份验证的配置文件可以在 ASP.NET 中共存吗?

我试图弄清楚事件何时Profile_MigrateAnonymous触发。

仅通过跟踪我的代码,我的最佳猜测是,当它同时检测到匿名会员 cookie 和经过身份验证的会员 cookie 时,它​​就会触发。谁能证实这一点?我在这里寻找真正深入的答案。不仅仅是它被称为“当用户登录时”。

现在 - 我为什么要关心?

我试图在用户通过身份验证后保留匿名配置文件,以便一旦他们注销,我仍然能够知道他们是谁,以及可能已设置的某些设置。

我看到的问题是 Profile_MigrateAnonymous 在每次请求时都会被解雇。不只是在用户登录时。这让我相信让匿名 cookie 一直存在是一种不好的做法——而且我应该总是调用ClearAnonymousIdentifier ();

例如,我有一家新店和一家旧店。我希望有权访问“新商店”的用户永远不会被放回旧商店。显然 - 与大多数购物车一样,您无需进行身份验证即可开始会话。因此,我认为唯一的方法是按照设计调用“ClearAnonymousIdentifier”,但保留一个辅助 cookie“UseNewStore”来跟踪他们应该去哪个商店。

这是一个很好的解释。还是我应该不在乎 Profile_MigrateAnonymous 一直被调用?

0 投票
1 回答
2402 浏览

asp.net-mvc - aspnet_Profiles 表中的 PropertyValuesString 和 PropertyValuesBinary 字段有什么用?

我认为 PropertyValuesString 用于通常是这些类型对象的键值对的值部分。但是,如果您已经将值放入 PropertyValuesString,那么 PropertyValuesBinary 字段会出现在哪里?

这两个字段都是不可为空的,所以我需要在每个字段中添加一些内容。两者有什么区别,我应该在里面放什么?

另外,我想知道为什么它是复数 - PropertyValue s - 对整个键值对的事情没有真正意义,我认为一个属性应该有一个值。

0 投票
1 回答
428 浏览

asp.net-mvc - Asp.net MVC 为什么我要使用 Profile Provider?

我已经有一个包含大约 20 个用户资料信息字段的数据库。我不确定创建自定义提供程序有什么好处。有人能解释一下有什么好处吗?谢谢。

0 投票
2 回答
1857 浏览

.net - 提供现有用户名时的 ASP.NET ProfileBase.Create 行为

当提供已存在的用户名时,ProfileBase.Create 是否返回与现有用户关联的 ProfileBase(如果用户名不存在,则创建一个新用户并返回新用户)?

为这个琐碎的问题道歉,但 MSDN 文档确实没有什么帮助。

0 投票
1 回答
2232 浏览

c# - 在 .NET Membership 中使用 List 类型的配置文件属性

我正在开发一个需要提供身份验证以及角色和配置文件管理的 C# Web 服务。我需要每个配置文件都具有 List 类型的属性。web.config 中的配置文件部分如下所示:

但是,当我启动 web 服务并尝试访问该属性时,它会返回以下错误:

System.Configuration.ConfigurationErrorsException:尝试加载此属性的类型导致以下错误:无法加载类型“System.Collections.Generic.List<String>”。(C:\Projects\MyProject\web.config 第 58 行)---> System.Web.HttpException:无法加载类型“System.Collections.Generic.List<String>”。

有没有办法为此目的使用通用集合?

0 投票
1 回答
197 浏览

asp.net - 将asp.net用户的配置文件信息存储在单独的列而不是1长列中?

当您为 asp.net 用户创建配置文件信息时,它会在 1 个字段中创建所有属性值。这不是最容易查询的事情。有没有办法告诉它将值存储在地址、城市、州、邮政编码等单独的列中,而不是名为 PropertyStringValues 的列中,其中值可能类似于 City:s:0:10State:s:10:15.. ...

0 投票
4 回答
738 浏览

asp.net-mvc - 配置文件系统:用户共享相同的 id

当我的网站负载很重时,我的网站会产生奇怪的影响。

我随机获取其他用户设置的属性。我有自己的配置文件系统实现,所以我想我不能责怪配置文件系统本身。

我只需要一个点来开始调试。我猜有一个 cookie 值映射到某处的 Profile 条目。有没有机会看看这个映射是如何工作的?

这是我的个人资料提供者:

这就是我在控制器中使用它的方式:

我想调试:提供不同cookie的2个用户如何获得相同的profileid?

编辑

这是 getuniqueid 的代码

这是SP:

0 投票
2 回答
880 浏览

asp.net - 自定义 ASP.Net 成员资格和登录控件

我正在为已经将其用户存储在现有数据库表中的 Web 应用程序创建自定义成员资格提供程序。我使用了教程中的一些代码来帮助启动我的提供程序,但我对如何与实际登录过程进行交互有点迷茫。

我的自定义提供程序有一个 ValidateUser() 的覆盖方法,目前我只是在那里返回 true。但我想创建一个当前用户对象以存储在会话范围内。该对象将仅存储有关用户的一些详细信息。

我想另一种选择是使用 ASP.Net 配置文件提供程序,但我也不清楚在哪里挂钩到登录进程以运行一些代码,这些代码将创建此用户对象或填充当前用户的配置文件信息。

0 投票
1 回答
157 浏览

c# - 自定义提供程序和设计模式

我正在使用 ASP.NET 2.0 及其各种提供程序。我已经覆盖了我需要的大部分方法,并拥有以下自定义提供程序:

ProjectMembershipProvider ProjectProfileProvider ProjectRoleProvider

在我的项目设计中,我的意图是将自定义提供程序包装在外观风格的设计中 - 在 API 方法中混合和匹配分析、成员资格和角色,以简化开发人员的工作。

但是,我发现我的自定义提供程序中的许多方法实际上不需要更改。而且,将一个独立的方法包装在另一个做同样事情的方法中似乎很愚蠢。

所以 - 我的方法错了吗?或者,我是否应该允许最终用户在需要时实例化自定义提供程序并在需要时实例化混合/匹配 API?这对我来说似乎有点多余,但我看不到另一种方式。

建议表示赞赏。

谢谢。