我正在 Sitecore 中创建一个应用程序,我只希望用户可以通过直接 URL 来使用它。我希望针对 LDAP 进行身份验证。我尝试直接进入应用程序并让它重定向到自动登录页面并将我重定向到应用程序,但它没有这样做。相反,它带我进入了 Sitecore 登录页面。
我想知道我是否可以编写一些代码来自动验证 LDAP 用户并重定向到应用程序页面。我希望用户永远不会看到登录页面或 Sitecore 桌面或除该应用程序之外的任何 Sitecore 屏幕。
Thanks
我们通过将 AD 模块与 Global.asax 中的一些自定义代码相结合来完成类似的事情。下面的几行内容可能会有所帮助。您可能需要一堆逻辑来检查用户是否已经登录,以及他们是否正在访问您想要自动登录的路径。
NOTE:确保 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)是使用初始化管道并在该处理器中注册会话启动事件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)