5

自家製のログインシステムを、.netに含まれている標準のasp.netログインコントロールに変換しようとしています。ログインしていないユーザーのWebサイトでのすべての通信をクリアテキストにしたいのですが、ユーザーがログインすると、ユーザー名とパスワードの送信を含め、すべてをSSLでロックします。

以前は、https:プレフィックスを付けた2番目のページ「loginaction.aspx」をロードし、Request.Form.Keysで適切なテキストボックスコントロールを探してユーザー名とパスワードを取得することで、これを機能させていました。.netログインコントロールを使用して同様のことを行う方法はありますか?個別のログインページは必要ありませんが、サイトのすべてのページにこのコントロール(loginview内)を含めます。

4

3 に答える 3

2

ポストバック (ログイン コントロールが使用するもの) は、ページのセキュリティが何であれ (SSL または非 SSL) になるため、単純に話していることを実行することはできません。

このシナリオでの最善の策は、ログイン コントロールのみを含む HTTPS (SSL) ページを含む IFRAME を使用することです。ログイン後に、IFRAME から飛び出すことができる別のページにリダイレクトする必要がある場合があります。

プラン B は、ログインを処理する別のページを指す 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 に答える