問題タブ [formsauthenticationticket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
204 参照

asp.net - ASP.NET フォーム認証チケットの暗号化/作成にはどのような入力が必要ですか?

私が読んだものはすべて、web.config ファイルの MachineKey 要素が暗号化されたチケットの値を決定する唯一のものであることを示していますが、現時点ではそれと矛盾する多くの証拠があります。

私の質問は、マシン キーとチケット内のデータが同一で​​あるとすれば、チケットの暗号化値 (特に長さ) が異なる理由は何ですか?

編集

タイムスタンプの結果として、値の変化が見られます。ただし、ある環境では、作成された値自体がはるかに短くなります。2 つのサイト (.NET 4、MVC2/3) は問題なく対応しています。ただし、.NET 2.0 / WebForms サイトは、同じマシン キーで復号化できません。

0 投票する
2 に答える
317 参照

asp.net - ページまたはハンドラーが FormsAuthentication チケットを更新できないようにする

シングル サインオンのフォーム認証チケットを共有する単一のドメインに複数のアプリがあります。また、各ページには、セッションの有効期限が切れる 2 分前にユーザーに警告し、ログアウトまたはセッションの延長を許可する JavaScript があります。カウントダウンが 0 になると、自動的にログオフされます。これはすべてうまくいきます。ただし、ユーザーが複数のブラウザー ウィンドウまたはタブを開いてさまざまなアプリを操作すると、惨めに失敗します。ユーザーがウィンドウ B で作業中にウィンドウ A がタイムアウトした場合、ユーザーは次の要求で B からサインアウトされます。

解決策はありますが、実装できないようです。基本的には、ページをレンダリングするときに、チケット発行日のティックを書き出します。次に、自動ログアウトするときに、ハンドラーを ajax 呼び出して、それらのティックが現在のフォーム認証チケットのティックと一致するかどうかを確認します。一致しない場合は、別のアプリがチケットを更新していることがわかるので、ログアウトしません。問題は、slidingexpiration = true を使用しているため、チケットを更新しない汎用ハンドラーを作成できないことです。

以下のハンドラー コードでは、クエリ文字列で送信している値が現在のチケットのティックと一致する場合、データは 0 として返されます。残念ながら、ハンドラーを要求するだけでチケットが更新され、常に新しいティック カウントが返されます。

チケットを拡張せずにサーバーから JSON リクエストを取得する方法についてのアイデアはありますか?

0 投票する
2 に答える
6422 参照

c# - FormsAuthenticationTicket.UserData プロパティの最大長

このチュートリアルに基づいて、フォーム認証を使用して ASP.Net 4.0 サイトのカスタム ID クラスを実装しています:
フォーム認証の構成と高度なトピック

追加のユーザー情報 (姓名、性別、地域、プロフィール写真のサムネイル ファイル名など) を AuthCookie に保存したいと考えています。msdn.microsoft.comには、UserData プロパティのサイズ制限に関する警告があります。

UserData プロパティの明確な文字制限を見つけることができませんでした。暗号化されたCookie全体が 4096 バイト未満であることのみ。

コードで想定すべき最大文字制限を知っている人はいますか? または、これらの頻繁に必要とされるユーザー情報の一部を保存する方法について、より良いアイデアをお持ちですか?

ありがとう

0 投票する
1 に答える
1266 参照

asp.net - asp.netでのパスワード回復制御

次の手順に従って、パスワードを忘れた場合のコントロールを作成したいと思います。

1-ユーザーが自分のメールアドレスを入力します。2-認証チケットを持つURLを含む電子メールがユーザーに送信されます。

私の問題は、認証チケットを作成できず、それをURLに埋め込むことができないことです。これは私が使用した例です。

しかし、チケットはURLに含まれていません、どうすればそれを行うことができますか、ありがとう。

asp.net4.0を使用します。

0 投票する
1 に答える
479 参照

c# - パスワードなしでMembershipUserを認証しますか?

パスワードなしでMembershipUserを認証することは可能ですか?私はユーザーアカウントを推測し、一時的なパスワードを持っていますが、これらのユーザーが実際にログインする必要はありません。ユーザーIDで自動的に認証し直したい。

これはできますか?

memebrshipプロバイダーに対して実際にそれらを認証していないようです。

0 投票する
1 に答える
523 参照

asp.net - asp.net フォーム認証チケットのスライド有効期限コード

SlidingExpiration フラグが true に設定されているため、フォーム認証チケットがいつ更新されるかを検出できるようにしたいと考えています。新しい有効期限でバックエンド サービスを呼び出す必要があります。チケットを再検証し、slidingExpiration による新しい有効期限で更新するコードがどこにあるか知っている人はいますか?

ありがとう!

0 投票する
1 に答える
1790 参照

asp.net-mvc-3 - MVC3Cookieが機能しない

MVC Webサイトでフォーム認証を使用していますが、Cookieの追加に問題があります。暗号化されたフォーム認証チケットを使用して、Cookieに追加していますが、Cookieを検査すると(「AuthCookie」という名前で)存在しますが、値はは常にnullであり、有効期限は常に「01/01/000100:00」に設定されます...これが私のログインコントローラーコードです。

最初は、暗号化された文字列が長さのために機能していないと思いましたが、簡単なテストクックを作成してこれをテストしたところ、同じ結果が得られました。

誰でも助けることができます

0 投票する
1 に答える
3547 参照

asp.net - FormsAuthenticationTicketタイムアウト後にcontext.Userを再初期化します

このアプリケーションでは、役割ベースのフォーム認証を実装しました。これはRoleModuleを使用して処理されており、RoleデータをCookieに保存し、Cookieからデータを読み取ってオブジェクトをインスタンス化するたびに行われIPrincipalます。このコードは次のApplication_OnPostAcquireRequestStateメソッドで実行されます。

これにより、context.Userオブジェクトが初期化されます。サーバーにリクエストが送信されるたびに、ユーザーは上記のフローを使用して認証されます。では、Application_EndRequestRolesCookieを現在のプリンシパルオブジェクトデータで更新します。

このページには、Cookieを読み取り、Cookieを更新し、有効期限が切れた場合にチケットを更新するFormsAuthentication_OnAuthenticate方法があります。Global.asaxまた、このメソッドでは、チケットの有効期限が切れた場合に、セッションオブジェクトにユーザー名の値を設定しようとします。

web.configのフォーム設定は次のとおりです。

セッションタイムアウトは20分です。

問題:ユーザーが30分(FormsAuthチケットの更新期間)を超えてアイドル状態になっているcontext.User.Identity.IsAuthenticated場合、ロールモジュールの値はfalseであり、context.Userとして設定されNULLます。これで、ユーザーがページを要求すると、ログインページにリダイレクトされます。ただし、Cookieはまだ存在します。この場合も、ユーザーがページをリクエストしようとすると、context.User.IsAuthenticatedプロパティがに設定されtrue、ユーザーはそれぞれのページに移動します。また、FormsAuthentication_OnAuthenticateメソッドでは、セッション値を設定しようとすると、セッションオブジェクトがであるためエラーがスローされますNULL

ここで達成したいのは、永続的なCookieの場合、認証チケットがタイムアウトした後、ユーザーはログアウトしない、つまりユーザーを再認証する必要があるということです。

どうすればこれを達成できますか?私が間違っていなければ、設定context.Userは目的を解決するはずですが、どうすればそれを実行できますか?

追加情報:

チケットの有効期限が切れてページをリクエストしようとすると、イベントビューアに次のエラーメッセージが表示されます。

自動生成されたものではなく、web.configに保存されている標準のマシンキー設定を使用しています。また、すべてのエラーについてプロセスIDと同じものを確認しました。

0 投票する
2 に答える
7438 参照

asp.net - フォーム認証チケットは安全ですか?

ユーザーがデフォルトのフォーム認証方法に基づいてログインすると、サーバーは暗号化されたデータを含む Cookie を作成します (暗号化のキーとしてマシン キーを使用)。

これは、誰かがサーバーのマシン キーを見つけたり、推測したり、アクセスしたりすると、Web アプリケーションにログインすることを意味します。

4 つのサーバー上にあるいくつかのアプリケーションを開発しました。そのため、machine.config 内のすべてのサーバーに対して同じマシン キーをハードコーディングしましたが、自動生成モードを使用できません。

  1. マシンキーを総当たり攻撃することは可能ですか?
  2. 他の方法はありますか?(WindowsとPassportは使いたくない)
  3. また、フォーム認証チケットは十分に安全ですか? (つまり、電子バンキング アプリケーションに使用できます)
0 投票する
1 に答える
519 参照

c# - asp.net 2.0 - 4.0 でのデュアル フォーム認証

バックグラウンド

同じドメインで 2 つの Web サイトを持っています。一方の Web サイトはログイン/アカウント管理機能のみをカプセル化し、もう一方の Web サイトは実際の Web サイトです。

  • LoginWeb - Login Page/css/images/javascript フォルダーのみが匿名アクセスを許可
  • AdminWebsite - フォーム認証によって完全にロックダウンされています。つまり、javascript/images/css フォルダーでさえありません<authorization><allow users=*>



が達成しようとしていること これは私が達成しようとしているワークフローであり、その 99% を達成しています。

  1. ユーザーがAdminWebsiteのいずれかのページにアクセスすると、 FormsAuthenticationによって LoginWebに戻されます。
  2. ユーザーは loginpage で資格情報を提供し、LoginWeb Web サイトはフォーム認証チケットを発行します。ユーザーはまだAdminWebSiteにログインしていません。(この方法で、ユーザーはパスワード変更ページなどに移動し、アカウント管理機能を実行できます)
  3. ユーザーは LoginWeb でさらに 2 つのステップに進み、AdminWebsite のFormsAuthチケットを発行してリダイレクトできるようになりました。

99%
はすでに機能しています これは、AdminWeb の FormsAuth チケットを発行しようとする LoginWeb のコードですが、機能していません。つまり、AdminWeb はまだログインにリダイレクトしています。私が見逃している非常に些細なことがあると確信していますが、それが正確に何であるかわかりません?????????


これらはフォーム認証の私の web.config セクションです:
LoginWeb


管理者ウェブサイト