我的公司刚刚获得了一些新应用的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开箱即用,但我不确定这一点。