1

現在、一部のスタッフが当サイトを別の登録ユーザーとして表示できるようにするサイトの機能を設計中です。すでにこのような機能を考えたり、実装したりしている方からのご意見をお待ちしております。

これはコミュニティウィキである必要があります。そして、可能であれば、それを1つとしてマークします。

4

2 に答える 2

1

私は過去にこれを2つの方法で行いました。

最も簡単なのは、十分な特権を持つユーザーがパスワードなしで任意のユーザーとしてログインできるようにすることでした。これは単なるセッション中のログインであり、あなたが誰であったかを、あなたがなりすましている人に完全に置き換えます。ログアウトして再度ログインすると、自分自身に戻ります。

もう1つは、「私は本当にユーザーABCです」というフラグをセッションに保持し、適切な管理ページでそのフラグを確認することでした(メカニズムは関係ありませんが、ほとんどのフレームワークでは通常、巧妙かつ本質的に目に見えない形で実行できます)が、セッションを切り替えますユーザー間XYZ。最初のメカニズムと同じ「パスワードをスキップする」メカニズムが使用されます。

後者はより複雑ですが、ログアウト/ログインの必要がなく、iframe内でサイトを実行したり、管理メニューを表示して特別モードから「ドロップアウト」したりするなどの優れたトリックが可能になります。

于 2012-05-31T15:40:29.250 に答える
1

私は2つの方法を見てきました:

  1. urlパラメータ'changeToUser=login'。フィルタは、IDを変更するのに十分な権限があるかどうかを確認してから、たとえば春にプリンシパルを切り替えます。必要に応じて、実際のIDを示し、何度も切り替える権限があることを示すフラグをセッションに追加できます。フラグがないと、ログをオフにしないと再び切り替えることができません。この方法は、フローアプリケーションをテストするときに非常に役立ちます(最初のユーザーがsthを実行し、次に2番目のユーザーが応答するなど)。dev / uatサーバーでは、アプリケーションが適切なリンクをレンダリングし、ワンクリックで必要なユーザーに切り替えることができます。

  2. ログイン中にIDを変更します。たとえば、my-login#login-of-user-i--pretendと実際のパスワードなどの偽のログインを使用します。LDAPオーセンティケーター(または使用するもの)の前に、チェーン内に別のオーセンティケーターを追加するだけです

2つ目は、flows / jbpmプロセスのない小さなアプリケーションに適しています。実際のユーザーは病気/不在で、現時点ではログインできないため、この機能を使用して何かを行う場合に便利です。しかし、多くのスイッチを必要とするフローアプリケーションをテストする場合は、特にレンダリングされたリンクを使用する場合、最初のソリューションの方がはるかに優れています。

于 2012-05-31T21:33:37.787 に答える