5

我正在尝试将本地登录系统转换为 .net 中包含的标准 asp.net 登录控件。我希望未登录的用户在网站上的所有通信都以明文形式进行,但在用户登录后将所有内容锁定在 SSL 中 - 包括用户名和密码的传输。

我之前通过加载带有 https: 前缀的第二页“loginaction.aspx”来进行此操作,然后通过在 Request.Form.Keys 中查找正确的文本框控件来提取用户名和密码。有没有办法使用 .net 登录控件做类似的事情?我不想有一个单独的登录页面,而是在网站的每个页面上都包含这个控件(在登录视图中)。

4

3 回答 3

2

您将无法简单地做您所说的事情,因为回发(这是登录控件使用的)将取决于页面的安全性(SSL 或非 SSL)。

在这种情况下,您最好的选择是使用包含仅包含登录控件的 HTTPS (SSL) 页面的 IFRAME。您可能必须在登录后重定向到另一个页面,以便您跳出 IFRAME。

计划 B 是在页面上(在您的主 FORM 之外)有一个单独的表单,它的 ACTION 属性指向您处理登录的另一个页面。您将不得不滚动您自己的登录代码来处理表单身份验证。

于 2008-11-12T01:17:16.460 回答
1

我可以通过将 OnClientClick 事件添加到登录按钮控件并将其设置为以下 javascript 函数来完成此操作。
`

function forceSSLSubmit() 
{

                var strAction = document.forms[0].action.toString();

                if (strAction.toLowerCase().indexOf("http:") == 0) {
                    strAction = "https" + strAction.substring(4);

                    document.forms[0].action = strAction;
                }

        }

`

于 2010-09-23T16:16:51.063 回答
0

您将无法将您的网站设置为非 SSL,在每个页面上都有一个登录框,然后通过 SSL 提交用户名和密码。

真正做到这一点的唯一方法是使用某种框架。这样,您的整个页面可能是非 SSL,但登录框架必须是 SSL。

执行此操作的常用方法是使用 SSL 锁定整个站点,不用担心用户名和密码 SSL 加密并在他们登录后转到 SSL,或者使用我上面提到的帧路由。

于 2008-09-18T20:25:17.360 回答