首页 / 知识

使用asp.net登录控件的部分站点SSL

2023-04-17 08:46:00

使用asp.net登录控件的部分站点SSL

Partial site SSL using asp.net login control

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

我通过加载带有https:前缀的第二个页面" loginaction.aspx",然后通过在Request.Form.Keys中查找适当的文本框控件来提取用户名和密码来完成此工作。 是否可以使用.net登录控件执行类似的操作? 我不想有单独的登录页面,而是在站点的每个页面上都包含此控件(在loginview中)。


您将无法简单地执行您在说的事情,因为回发(登录控件使用的内容)将与页面的安全性(SSL或非SSL)无关。

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

计划B将在页面上(在主表单之外)具有一个单独的表单,该表单的ACTION属性指向您处理登录的另一页面。您将必须输入自己的登录代码来处理表单身份验证。


我可以通过将OnClientClick事件添加到登录按钮控件并将其设置为以下javascript函数来实现此目的。
`

1
2
3
4
5
6
7
8
9
10
11
12
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;
                }

        }

`


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

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

这样做的通常方法是使用SSL锁定整个站点,不用担心对用户名和密码SSL进行加密并在登录后使用SSL,或者使用我上面提到的框架路由。


登录控件站点系统

最新内容

相关内容

猜你喜欢