2017-02-03 50 views
0

我的公司剛剛獲得了一些新應用的Kentico。這些應用程序將在大約2周內投入生產,所以我們對此仍然相當陌生。我們有三個ASP.NET MVC應用程序/站點,用於格式化並顯示存儲在Kentico中的內容。另外,我們有特定的用戶登錄到Kentico9/Admin站點來管理MVC應用顯示的內容。根據來自Siteminder的HttpHeader值將用戶登錄到Kentico管理站點

從公司的角度來看,我們也啓用了Siteminder SSO。當用戶導航到我們的Kentico9/Admin站點時,他們首先使用我們的公司Siteminder SSO表單使用其公司用戶標識進行身份驗證。當他們被成功驗證後,Siteminder將用戶重定向到他們最初請求的Kentico9/Admin站點,並向用戶呈現標準的Kentico登錄表單。如果用戶在另一個會話期間通過Siteminder登錄,他們只會看到Kentico登錄表單。否則,如果這是他們第一次登錄,則用戶需要登錄兩次(一次通過Siteminder,一次通過Kentico)。

我想要做的是繞過標準的Kentico登錄表單,並使用Siteminder信息授權用戶將其登錄到Kentico管理站點。 Siteminder將用戶名和一些其他信息添加到HTTP請求標頭中。使用C#,我可以使用以下方式檢索其公司用戶標識:System.Web.HttpContext.Current.Request.Headers.Get("SM_USERID")

所以,簡而言之,我想重寫Kentico的標準登錄表單,並編寫一些代碼,從HTTP請求標頭獲取用戶標識,並通過在Kentico中查找其用戶標識來授權用戶。如果用戶標識未找到或未處於活動狀態,請向用戶提供標準的Kentico登錄表單。否則,如果用戶是有效且活躍的用戶,則取出他們的用戶記錄並允許他們訪問Kentico。

我發現了一些信息,並給了足夠的時間,我可能會找出一些東西,但我希望有人做了類似的事情,並可以加快我的過程。關於我能做什麼的任何想法?我還會提供任何可能與Siteminder更緊密集成的東西,儘管看起來Kentico可以處理Siteminder開箱即用,但我不確定這一點。

回答

0

聽起來像你可能能夠創建一個自定義的webpart,你將放置在一個頁面上,只需Siteminder將用戶重定向到帶有該webpart的頁面,並在頁面加載時查找這些頁眉值。如果發現它們,請在Kentico中執行您的操作,根據需要在Kentico中查找並驗證它們。如果沒有標題值或找不到Kentico信息,只需將它們發送到常規登錄頁面即可。

您也可以創建全局事件處理程序,但這需要有人在輸入憑據後單擊網站上的按鈕或類似按鈕。

相關問題