带有LDAP的Sitecore-以编程方式进行身份验证



我正在Sitecore中创建一个应用程序,我只希望用户可以通过直接的URL使用它。我希望根据LDAP进行身份验证。我试着直接转到应用程序,让它重定向到自动登录页面,并将我重定向到该应用程序,但它没有做到。相反,它将我带到Sitecore登录页面。

我想知道我是否可以写一些代码来自动验证LDAP用户并重定向到应用程序页面。我希望用户永远不会看到登录页面、Sitecore桌面或除该应用程序之外的任何Sitecore屏幕。

感谢

我们通过将AD模块与Global.asax中的一些自定义代码相结合,完成了类似的任务。下面几行可能会有所帮助。您可能需要一系列逻辑来检查用户是否已经登录,以及他们是否正在访问您想要自动登录的路径。

注意:确保在IIS中启用了windows身份验证。

protected void Session_Start(object sender, EventArgs e){
        // The user from Windows Authentication in IIS
        var user = Context.Request.ServerVariables["LOGON_USER"];
        //Log the user in
        bool success = Sitecore.Security.Authentication.AuthenticationManager.Provider.Login(user, false);
}

您会注意到,我提供的示例直接提供给提供商。您也可以在AuthenticationManager类中调用Login,这也将对缓存执行一些其他操作。就我而言,我试图绕过这一点。

更新(2017-06-29):在Sitecore的较新版本中,不建议对Global.asax进行更改。不幸的是,Sitecore中没有等效的管道。您可以尝试使用httpRequestBegin(UserResolver处理器所在的位置)或httpRequestProcessed,但它们会在每个请求上触发。

另一种选择(归功于SlackChat上的@Mark Cassidy)是使用Initialize管道,并在该处理器中注册会话启动事件。

有可能是的,谷歌快速搜索会发现以下内容:

http://www.nehemiahj.com/2013/01/how-to-enable-single-sign-on-in-sitecore.html

基于Sitecore 的AD模块

http://sdn.sitecore.net/SDN5/Products/AD/AD11/Documentation.aspx

这应该给你一个很好的起点。

最新更新