2017-02-03 26 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信息,只需将它们发送到常规登录页面即可。

您也可以创建全局事件处理程序,但这需要有人在输入凭据后单击网站上的按钮或类似按钮。

相关问题