0

私のアプリでは、データベースに保存されているログイン/パスワードまたはそのデジタル証明書を使用してユーザーを認証できます。

どちらの方法でも、ログインが成功すると、Cookieが作成され、ユーザーに関連付けられます。

FormsAuthentication.SetAuthCookie(model.UserName, false);
return RedirectToAction("Index", "Home");

私はこれが違う必要があります。ユーザーがデジタル証明書を使用してログインした場合、証明書が存在するかどうかを確認したいのですが、そうでない場合はエラーがスローされます。

概念は、証明書がそこにない場合、これはユーザーが離れたために何もできないためです。

それは難しいですか?

4

1 に答える 1

0

私はこれに対する簡単な解決策を見つけました。

IISでは、サイトの詳細設定で接続タイムアウトを設定する方法があります。これは、接続が切断される前に非アクティブのままでいられる時間(秒単位)です。

サイトノードをクリックし、アクションペインで[詳細設定]をクリックし、[接続制限]の[+]をクリックして、[接続タイムアウト(秒)]を関連する期間に設定します。

1に設定しました。これで、基本的に、ユーザーがアクションを呼び出すたびに、証明書をチェックします。そこにある場合、アプリケーションは正常に続行されます。

デジタル証明書が必須であるため、これは私にとってはうまくいきました。通常のログイン/パスワードフォームを使用している場合は、より良い方法を見つける必要があります。そうしないと、ユーザーは常にログインページにリダイレクトされます。

于 2013-01-23T16:33:35.330 に答える