Sitecore with LDAP - 以编程方式进行身份验证

时间:2014-11-11 17:09:25

标签: authentication web-applications ldap sitecore

我正在Sitecore中创建一个应用程序,我只想通过直接URL向用户提供它。我希望对LDAP进行身份验证。我试着直接进入应用程序并让它重定向到自动登录页面并将我重定向到应用程序,但它没有这样做。相反,它带我到Sitecore登录页面。

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

由于

2 个答案:

答案 0 :(得分:3)

我们通过将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管道并在该处理器寄存器中注册会话启动事件。

答案 1 :(得分:0)

可能是的,快速谷歌搜索出现了这些:

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

那应该给你一个开始的好地方。