たくさん検索した後、私は何の答えも得られず、最終的に私はあなたに戻らなければなりませんでした。以下に私の問題を詳しく説明します。長すぎるので、読むのをやめないでください。私は自分の問題を簡単な言葉で説明しました。
私はasp.netmvcプロジェクトを開発しています。標準のASP.NETの役割とメンバーシップを使用しています。すべてが正常に機能していますが、rememberme機能はまったく機能しません。私は仕事のすべての詳細をリストしています。皆さんが私がこの問題を解決するのを手伝ってくれることを願っています。
私は単にこれが必要です:
ユーザーがWebアプリケーションにログインする必要があります。ログイン中、彼らは私を覚えているか、それなしでログインすることができます。ユーザーがremembermeを使用してログインした場合、ブラウザーにそれらを長期間記憶させたいと思います。たとえば、少なくとも1年またはかなり長い時間です。彼らがwww.dotnetspider.com、www.codeproject.com、www.daniweb.comおよび他の多くのサイトでそれを行う方法。ユーザーが私を覚えていない状態でログインした場合、ブラウザはWebサイトへのアクセスを約20〜30分間許可し、その後セッションが期限切れになるはずです。ユーザーがログインし、ログアウトせずにブラウザをシャットダウンすると、セッションも期限切れになります。
注:ユーザー用に独自のタルブを作成し、データベーステーブルに対して認証し、他のプロジェクトでCookieとセッションを設定することにより、標準のasp.netロールとメンバーシップを使用せずに上記の機能を正常に実装しました。ただし、このプロジェクトでは、最初から標準のasp.netの役割とメンバーシップを使用していました。私たちはそれが機能すると思っていましたが、テスト時にすべてが構築された後、機能しませんでした。そして今では、既存の機能を標準のasp.netの役割に置き換えたり、メンバーシップを自分のカスタムユーザーテーブルやその他すべてのものに置き換えたりすることはできません。
標準のasp.netロールとメンバーシップ機能に何らかのバグがあるか、標準のasp.netロールとメンバーシップの概念全体が間違っています。私は私が上に欲しいものを述べました。とてもシンプルでリーズナブルだと思います。
私がしたこと
- ユーザー名、パスワードを入力してフォームにログインし、フィールドを覚えておいてください。
- web.configの設定:
<authentication mode = "Forms">
<forms loginUrl = "〜/ Account / LogOn" timeout = "2880" />
</ authentication> 私のコントローラーアクションでは、私はこれを持っています:
FormsAuth.SignIn(userName、rememberMe);
public void SignIn(string userName、bool createPersistentCookie){FormsAuthentication.SetAuthCookie(userName、createPersistentCookie); }
現在、問題は次のとおりです。
私はすでに上記のセクションで「私は単にこれが必要です」と述べました。ユーザーはシステムに正常にログインできます。それらのセッションは、web.configのタイムアウト値で指定されている分だけ存在します。web.configのサンプルも提供しました。私のサンプルでは、タイムアウトを5分に設定すると、ユーザーセッションは5分後に期限切れになります。これで問題ありません。ただし、ユーザーがブラウザを閉じて再度開いた場合でも、「タイムアウト」で指定された時間が経過するまで、ログインせずにWebサイトにアクセスできます。タイムアウト値のスライディング有効期限も正常に機能しています。これで、ユーザーが[覚えている]をオンにしてシステムにログインした場合でも、ユーザーセッションは5分後に期限切れになります。これは良い行動ではありませんね。つまり、ユーザーが「私がチェックしたことを覚えて」でシステムにログインした場合、彼はそうしないまで長い間覚えておく必要があります。tシステムからログアウトするか、ユーザーがブラウザからすべてのCookieを手動で削除しません。ユーザーが覚えていない状態でシステムにログインした場合、web.configで指定されたタイムアウト期間の値の後にセッションが期限切れになることを確認しました。また、ユーザーがブラウザーを閉じた場合も同様です。問題は、ユーザーがブラウザを閉じて再度開いた場合でも、ログインせずにWebサイトにアクセスできることです。
私はこのトピックについてインターネットをよく検索しますが、解決策を得ることができませんでした。まったく同じトピックについてScottGuが作成したブログ投稿(http://weblogs.asp.net/scottgu/archive/2005/11/08/430011.aspx )。スコット氏からの簡単な解決策はありませんが、ユーザーはコメントで同じことについて不満を言っています。
私は次の場所でそれを読みました: http: //weblogs.asp.net/scottgu/archive/2005/11/08/430011.aspxhttp: //geekswithblogs.net/vivek/archive/2006/09/14/91191。 aspx
これは多くのユーザーの問題だと思います。スコット・グー氏のブログ投稿からもわかるように。
あなたの助けは本当にありがたいです。前もって感謝します。