2017-02-03 11 views
0

私の会社は新しいアプリケーションのためにKenticoを取得しました。これらのアプリケーションは約2週間で生産に入る予定ですので、まだまだ新しいものです。私たちが持っているのは、Kenticoに保存されているコンテンツをフォーマットして提示する3つのASP.NET MVCアプリケーション/サイトです。さらに、Kentico9/AdminサイトにログインしてMVCアプリケーションによって表示されるコンテンツを管理する特定のユーザーがいます。SiteminderのHttpHeaderの値に基づいてKentico管理サイトにログインします

企業の観点からは、Siteminder SSOも有効になっています。ユーザーがKentico9/Adminサイトに移動すると、企業のユーザーIDを使用して、企業のSiteminder SSOフォームによって最初に認証されます。それらが正常に認証されると、Siteminderはユーザーを当初要求したKentico9/Adminサイトにリダイレクトし、ユーザーには標準のKenticoログインフォームが提示されます。ユーザーがすでに別のセッション中にSiteminder経由でログインしている場合は、Kenticoログインフォームでのみ表示されます。それ以外の場合は、初めてログインする場合は、ユーザーは2度ログインする必要があります(Siteminder経由で1回、Kentico経由で再度ログインする必要があります)。

私がしたいのは、標準のKenticoログインフォームを迂回し、サイトメインダー情報を使用してユーザーにKentico管理サイトにログオンする権限を与えることです。 Siteminderは、ユーザー名とその他の情報をHTTPリクエストヘッダーに追加します。 C#を使用して、企業ユーザIDを取得するには、System.Web.HttpContext.Current.Request.Headers.Get("SM_USERID")を使用します。

簡単に言えば、私はKenticoの標準ログインフォームを無効にし、HTTPリクエストヘッダーからユーザーIDを取得し、KenticoでユーザーIDを検索してユーザーを認証するコードを記述します。ユーザーIDが見つからないか、アクティブでない場合は、ユーザーに標準のKenticoログインフォームを提示します。それ以外の場合は、ユーザが有効でアクティブなユーザである場合は、ユーザレコードを取得してKenticoにアクセスできるようにします。

私はいくつかの情報を見つけて、十分な時間を与えられて、何かを理解することができるかもしれませんが、誰かが似たようなことをして、プロセスをスピードアップできることを願っています。私が何をすることができるかについてのアイデア?私はまた、Siteminderとの緊密な統合を可能にするものを楽しんでいますが、KenticoはすぐにSiteminderを処理することはできませんが、それについてはわかりません。

答えて

0

ページに配置するカスタムWebパーツを作成し、SiteminderでそのWebパーツを含むページにユーザーをリダイレクトし、ページの読み込み時にそれらのヘッダー値を探しさせるような音がします。それが見つかったら、Kentico内であなたの行動を行い、必要に応じてKenticoでそのユーザを確認し、認証します。ヘッダー値がない場合、またはKentico情報が見つからない場合は、通常のログインページに送信してください。

グローバルイベントハンドラを作成することもできますが、資格情報を入力した後、サイト上のボタンなどをクリックする必要があります。

関連する問題