- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在努力实现一个自定义成员资格提供程序,它针对我数据库中的现有模式工作,并且有一些想法/问题。
登录控件将自动调用成员资格提供程序的 ValidateUser 方法,因此无论我如何实现提供程序,登录控件唯一关心的是此方法返回的 bool 值。我感到困惑的是,登录尝试失败的原因可能有很多;用户被锁定,一段时间内尝试次数太多,等等。我认为无法将其传达给控件,以便它可以显示正确的消息。成员提供者的其他属性,如 PasswordStrengthRegularExpression 对登录控件也完全没有影响(开箱即用),我希望它能以某种方式自动转换为正则表达式验证器,但这似乎不是案件。因此,如果我希望登录控件属性自己接受控件,我似乎需要使用提供程序配置中的这些设置来初始化登录控件属性。
如果登录控件开箱即用(无需手动处理事件和执行上述初始化)的唯一事情是调用成员资格提供程序上的 ValidateUser 方法,我看不出有什么方法可以传回给登录控件为什么验证失败,甚至做一些事情,比如根据特定时间窗口限制验证请求。最终我的问题是,为什么我还要将成员(member)提供程序与登录控件结合使用?它似乎只是为 Yes/No 类型的响应而设计的,这是非常有限制的。如果我想在逻辑中构建不同的消息返回给用户,我需要处理登录控件事件并调用我自己的身份验证类来处理我的所有业务需求,并将自定义错误消息返回给登录控件以向用户显示,以便他们知道为什么他们的尝试无效。
除非我的假设有误,否则作为成员资格 API 的登录控件之间的接口(interface)似乎限制太多而无用。也许 API 对于 ChangePassword 等其他身份验证控件效果更好,但对于实际的登录控件,我不明白这一点。
我很欣赏你的想法。
最佳答案
你是对的。要实现您正在谈论的逻辑,您需要实现 Authenticate 事件。这样您就可以在进行自己的验证后写回自定义错误消息。
另一方面,我认为密码强度不应该在身份验证时验证,而是在用户创建时验证。
你可以这样写:
protected void Login_Authenticate(object sender, AuthenticateEventArgs e)
{
try
{
e.Authenticated = myMembershipProvider.ValidateUser(LoginControl1.UserName,LoginControl.Password);
}
catch(Exception ex)
{
LoginControl1.FailrureText = ex.Message;
}
}
并在您的 ValidateUser 方法中抛出您的自定义异常。快乐编码...
关于c# - 登录控制和自定义成员(member)提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3909389/
我们有一个包含重复用户记录的数据库,我需要根据几个因素选择“最佳”用户: 应先选择具有成员(member)资格的用户,然后再选择没有成员(member)资格的用户 成员(member)有级别,在所有条
不知道为什么 Visual Studio 发出此警告: Access of shared member, constant member, enum member or nested type thr
我有一个数据库设置来注册网站的成员(member)专用区域的成员(member)。我可以使用复选框回显所有注册成员,以便我可以选择从管理页面删除单个成员,但我似乎无法弄清楚如何在单击提交按钮时选择删除
假定前缀一元运算符可以“由不带参数的非静态成员函数或带一个参数的非成员函数实现”(§13.5.1[over.unary]/1),除了适用于任何成员/非成员函数选择的通常封装/代码重用设计原理之外,还有
拥有 struct Person { string name; }; Person* p = ... 假设没有运算符被重载。 哪个更有效(如果有的话)? (*p).name 对比 p->name
进程文件: members-area or members-area.exe 进程名称: 5-1-61-96 进程类别:存在安全风险的进程 英文描述: 
引用资料 http://msdn.microsoft.com/en-us/library/6tc47t75%28v=VS.80%29.aspx http://msdn.microsoft.com/en
这个问题在这里已经有了答案: Is there any reason to use this-> (16 个答案) 关闭 7 年前。 这有什么区别: int MyClass::getId() {
我正在制作一个网站,您需要在其中注册,然后创建一个角色来玩。我如何将注册页面中使用的表格与玩家的表格结合起来,以便玩家始终获得他创建的角色。 我有一个表members,用于存储注册用户以及角色的 ta
我处于困境中,我被委托(delegate)创建一个 PHP Web 应用程序,该应用程序允许一个人注册,然后该用户可以再注册 5 个其他用户,他注册的其他用户也可以每个注册 5 个成员。 我希望创建数
我试图在成员(member)页面上显示一个非常简单的用户名。我已经在 stackoverflow 上搜索过,但使用我发现的内容不起作用。 我使用 HTML 表单指南中非常常见的注册/登录脚本,该脚本使
我正在使用CodeIgniter,我的问题是关于MySQL查询。我有两个表,分别是成员和关系。 成员表 我正在做的是,根据member_type将所有用户添加到成员表中。如果 member_type
我有一个表,用于存储 2 个成员(成员 A 和成员 B)之间的聊天信息。现在,当成员 A 删除他的消息时,我会抛出这样的 sql 请求 $deleting = mysqli_query($connec
from bs4 import BeautifulSoup import requests r = requests.get('http://medicalassociation.in/doctor-
我有两个我无法修改的类,它们都具有完全相同的成员: class Pose1 { public: double x,y; }; class Pose2 { public: d
我正在测试服务器上运行机器人。当前 channel 中有 3 个成员(member_count of 3),但它只返回一个成员。该成员是机器人。 代码: import discord from dis
我有一个对象,我们称之为 o,以及对 o 的引用。 在o范围内,我设置了一个成员,我们称之为m。 所以在 o 中,我调用: o.m = "blah" 在 o 之外,我访问 m: console.log
我正在尝试实现自定义成员(member)资格提供程序并希望更改 GetUser 方法。问题是 GetUser 返回 MembershipUser,而我想返回 MyMembershipUser,它有两个
我的网站有一个推荐给 friend 的按钮。为了鼓励人们使用此功能,我想用积分奖励那些使用它的人(积分将兑换奖品......还不知道)。 好的,所以我有这样的结构: 表单.php 您可以在此处输入 f
我在 MySQL 中有三个表, 组(键:group_id) 成员(键:member_id) group_member_relations 键:group_id, member_id 最后一个表包含 m
我是一名优秀的程序员,十分优秀!