A)为什么,何时使用的模板 CreateUserWizard 控制,并不包括 文本框ID=电子邮件 取决于是否 CreateUserWizard.RequireEmail 财产被设定为真实的,但 文本框ID=的问题 只需要,如果潜在的成员资格提供商需要密码的问题?换句话说,为什么它不会还能起到潜在的成员资格提供商,以决定是否 文本框 ( 与ID=电子邮件 )是必需的?


B)另一方面,为什么会成员资格提供商,以决定是否密码的问题是需要?不应该这可以达到 成员资格的类 决定?毕竟,该工作的成员资格提供商应该只是提供基础数据存储,而不是决定什么数据用户必须提供?!


感谢名单


编辑:

A)

它涉及到了一个事实,即会员国提供了一个明显的映射:提示,这你可以设定并具有这种强制执行的,但是你可以不指定用户必须提供一个电子邮件地址。

所以具在本质上讲,用户不需要指定一个电子邮件地址,但是如果她不,它必须是独一无二的?


B)

  • 如果我理解会员国提供正确,他们是实体发送SQL查询到的数据存储?!因此,我假设它们具有充分的认识表和关系等这一数据存储有?

  • 但仍然,如果数据存储没有一列,用于存储电子邮件地址,但是。()规定的电子邮件地址作为其参数?如何成员提供处理呢?

有帮助吗?

解决方案

它是一个有趣的观点,电子邮件的一部分,预计的数据字段。

让我澄清一下...如果你设置具来真正的SQL提供商、电子邮件将不需要--严格的发言。这只是意味着每个用户都必须使用一个不同的电子邮件地址,从任何其他用户。因此可以有一个用户,而无需一个电子邮件地址。空值将在对数据库。但是没有其他用户将能够忽略电子邮件地址之后,因为这将导致两个用户拥有空电子邮件...所以功能上它也可能是相同的,因为所需的电子邮件地址,但是它在技术上并不相同。

向导的控制提供默认的用户界面,用于收集会员国的信息,并假定将使用的默认SQL提供者。如果你不使用默认供应商,供应商不支持的所有领域,或者你有其他的唯一限制在你的供应商然后你应该定义的向导的步骤用自己的模板和处理导的活动提供自己的验证和额外的逻辑。

作为对于了解会员国系统本身...

成员资格系统中asp.net 是一个妥协之间的严格面向对象设计和提供方便。有几个假设的基数类从其具体成员提供者的继承是放肆。事实上,电子邮件地址将会部分成员国的数据在一个更自由的假设的基础的提供者。

通过使这样的假设,虽然,这是真的,在大多数环境中,会员国系统能够获得某些功能有关的电子邮件地址在一个简单和直观的方式(例如得到一个用户通过他们的电子邮件地址,而不是用户名和禁止多个账户相同的电子邮件地址)。如果基类没有做这种假设,那么每次你想做的东西,电子邮件在您的特定供应商,你已经投参照特定类型使用的内部应用程序。这是繁琐。

从一个纯粹面向对象的观点看,这些假设是不舒服。但你可以,而且许多成员提供提供空的实现方式方法和性质从基类如果他们不使用他们。

你看到这个更有作用提供者...例如Windows令牌的作用提供者有了很多的成员,扔NotImplmentedException(令牌的作用提供者是一个只读的供应商广告,所以所有的财产设置访问扔例外情况)。

其他提示

它涉及到了一个事实,即会员国提供了一个明显的映射: 提示, 你可以设定并具有这种强制执行的,但是你可以不指定用户 必须 提供一个电子邮件地址。

指定,他们必须提供一个独特的电子邮件地址 是不一样的话说,"需要一个电子邮件"-所以CreateUserWizard是提供你选择的话说"我不在乎电子邮件地址并不是独特的,只是有一个"。

为什么会员国的提供者应该控制是否是一个问题是必需的:这是因为供应商还控制的东西喜欢EnablePasswordReset和EnablePasswordRetrieval-这些是事情的memebership类没有知识的-事实上,即使会员国类有一个"ValidateUser"方法,它将使用的默认供应商指定的网络。config要做到这一点:

会员国类依靠成员资格提供者与一个数据来源。


在答复问题编辑:

a.这是正确的,因为 斯蒂芬指出, 你可以有一个用户有一个空的电子邮件地址,那么所有其他人必须有一个价值。根据你的验证程序,这实际上并没有成为一个有效的电子邮件地址.

b.1.不相当的供应商发送的数据和用户数据储存-这可能是SQL,但它也可以主动目录,LDAP,一个文本的文件,等等,但是,你提供充分离层之间的应用程序和用户储存。

b.2.有很多部分成员的文件 实施一个定义成员资格的用户 你需要通过所需的步骤创建一个自定义用户如果数据存储没有处理电子邮件地址(或者你想多个电子邮件保存在一个曲),那么你的提供者可以忽略任何价值送过来你在创建或更新和填充空上得到的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top