根据Siteminder

时间:2017-02-03 18:37:26

标签: kentico siteminder

我的公司刚刚获得Kentico的一些新应用程序。这些应用程序将在大约2周内投入生产,因此我们仍然相当新。我们拥有三个ASP.NET MVC应用程序/站点,用于格式化和呈现存储在Kentico中的内容。此外,我们还有特定用户登录Kentico9 / Admin站点来管理MVC应用程序显示的内容。

从企业的角度来看,我们还启用了Siteminder SSO。当用户导航到我们的Kentico9 / Admin站点时,他们首先使用他们的公司用户ID通过我们的企业Siteminder SSO表单进行身份验证。成功通过身份验证后,Siteminder会将用户重定向到他们最初请求的Kentico9 / Admin站点,并向用户显示标准的Kentico登录表单。如果用户在另一个会话期间已通过Siteminder登录,则只会向他们显示Kentico登录表单。否则,如果这是他们第一次登录,则用户需要登录两次(一次通过Siteminder,再次通过Kentico)。

我想要做的是绕过标准的Kentico登录表单并使用Siteminder信息授权用户将其登录到Kentico管理站点。 Siteminder将用户名和一些其他信息添加到HTTP请求标头中。使用C#,我可以使用以下代码检索其公司用户ID:System.Web.HttpContext.Current.Request.Headers.Get("SM_USERID")

因此,简而言之,我想要覆盖Kentico的标准登录表单并编写一些代码,这些代码将从HTTP请求标头中获取用户ID,并通过在Kentico中查找其用户标识来授权用户。如果未找到用户标识或未激活用户标识,请向用户显示标准的Kentico登录表单。否则,如果用户是有效且活跃的用户,请提取其用户记录并允许他们访问Kentico。

我已经找到了一些信息,并且给了足够的时间,我可能能够找到一些东西,但我希望有人做了类似的事情并且可以加快我的过程。关于我能做什么的任何想法?我也会接受可能与Siteminder更紧密集成的任何东西,虽然Kentico看起来并不能开箱即用,但我不确定。

1 个答案:

答案 0 :(得分:0)

听起来您可以创建一个自定义的webpart,它将放置在页面上,只需让Siteminder将用户重定向到包含该webpart的页面,并在页面加载时查找这些标题值。如果找到它们,请在Kentico中执行操作以查看该用户并根据需要在Kentico中对其进行身份验证。如果没有标题值或找不到Kentico信息,只需将它们发送到常规登录页面即可。

您还可以创建一个全局事件处理程序,但这需要有人在输入凭据后点击您网站上的按钮等。