ASP.NET表单身份验证中的多个登录页面

时间:2010-06-02 14:53:37

标签: asp.net forms-authentication

我银行的网站有2个网上银行登录页面。在第一页上,我输入了我的用户名。如果我没有输入有效的用户名,我会收到一条错误消息,但是没有进入第二页。第二页显示基于我的用户名的图片,让我输入我的密码。如果我在输入用户名后手动输入网站内页面的URL,但在输入密码之前,我会被重定向回第一个登录页面。

有没有一种很好的方法在ASP.NET中使用Forms身份验证实现它?我只在web.config中获得1个loginUrl。

我相当肯定我的银行使用Java。

2 个答案:

答案 0 :(得分:0)

我没有发现这个好主意,因为这样任何攻击者都知道用户名是否正确,那么就需要知道密码。

第二个原因是更复杂,您需要确保在登录的路上不会忘记某些内容。

第三个原因是不是常用的登录方式,因此人们没有使用它。

如果你想做同样的事情,你需要2页,首先你问用户名,然后你在本地数据库上搜索,如果这是一个有效的用户,那么你保留这个您在第二页上发送的变量的用户名,即实际登录名。 在第二页上,您有一个常见的asp.net登录模块,但您已隐藏了用户名,同时您已使用上一页中的值进行设置。其余的由你决定。

答案 1 :(得分:0)

嘿,我知道这个银行。提供它是同一个银行,如果用户在以前从未访问过登录的计算机上,则有另一个页面供用户访问。一旦输入用户名,他们就会访问一个问题答案页面,其中问题是他们在首次注册时选择的随机问题,或者至少在他们想到这个引人注目的登录页面时。然后他们访问密码页面。

如果您使用内置的AspNetSqlMembershipProvider提供程序,您可以自己实现此功能,您可以自定义内置登录控件并覆盖OnLoggingIn方法。然后,您可以执行在该登录时检查所需的内容并将其移至另一页。在下一页上,您可以使用相同的方式覆盖其他方法:OnAuthenticateOnLoggedIn,同时仍然使用内置控件(但可以根据需要自定义)。然后,您可以将web.config中的登录页面设置为第一个登录页面。您也可以看到MSDN其他方法。

现在已经指出这不太理想,因为它不典型,大多数用户不会理解发生的事情或者认为它是片状的(就像我对银行所做的那样)。更不用说你将需要进行额外的检查,类似于银行的做法,以确保一切都是合法的来自客户。所以最后我不会推荐它,主要是给最终用户带来麻烦。

相关问题