我正在尝试在web.config中的Sitecore站点上设置loginPage值。 loginPage中引用的文件是Sitecore项,因此它不是服务器上的psycical页面。无论我如何引用它,它都行不通。我得到2个错误之一(取决于我如何重新编写文件);
无法找到资源。 执行/ sitecore / login的子请求时出错。 (我在web.config中引用的那条路径)
有什么想法吗?
答案 0 :(得分:18)
web.config中的解释性注释说'loginPage'属性应为The path to the login page to use. Must point to a physical file or a page in a site that does NOT require login.
'要求登录'表示拒绝匿名用户的读取权限。此匿名用户是为此站点指定的域中的用户。
例如,如果您要为“网站”网站设置登录页面,则应确保 extranet \ Anonymous 对您的项目具有读取权限指定。
希望这有帮助。
答案 1 :(得分:5)
loginPage属性实际上是一个URL,而不是项目路径。包括带扩展名的完整路径 - 例如/MyAccount/Login.aspx
答案 2 :(得分:1)
尝试点击浏览器中的网址到您的登录页面。如果您无法访问页面本身或者它在浏览器中抛出错误,那么在web.config中访问它将无法正常工作。
使用路径yoursite / login或您设置的任何sitecore树路径,在浏览器的URL中显示登录页面。然后将其添加到web.config。
此外,在内容树中,您可以单击安全性并访问查看器以获取登录项。然后选择匿名角色。如果它是安全问题,那么您将看到哪个角色正在影响匿名的安全设置。
答案 3 :(得分:0)
在浏览器中输入“url of ur website / Sitecore / showconfig.aspx”..在这里,您将获得所有正在使用的.config文件的组合。此外,你可以检查fiddler(一个软件),看看除了找不到资源之外你还能得到什么。
答案 4 :(得分:0)
如果你还可以粘贴你在web.config中应用的设置,那会很好,但这就是我理解这个问题的方法。
您想要创建客户端用户登录页面,而不是覆盖Sitecore登录页面。
如果是这样,您必须确保它位于主项目下( sitecore> content> home> YOUR_LOGIN_PAGE )。
如果在家庭项目之外,例如。 Sitecore的>内容> YOUR_WEBSITE> YOUR_LOGIN_PAGE 然后你必须在 sitedefinition.config 中配置它,因为它被某种方式视为新网站而不是新安装的Sitecore的一部分。
要验证您是否已正确应用它,请尝试访问浏览器上的showconfig页面(例如。http://YOUR_WEBSITE/sitecore/admin/showconfig.aspx )
您可能需要仔细检查的其他内容:
确保您能够在网络数据库上发布,如果没有尝试在预览模式下访问
确保该项目具有布局和渲染定义。否则,它将无法正常工作。
确保您拥有正确的权限,以便您能够访问该页面。我认为你是管理员角色
答案 5 :(得分:0)
此问题可能是由修改后的设置引起的:
<setting name="RequestErrors.UseServerSideRedirect" value="false" />"
默认为false。
根据配置文件中的说明如果为true,Sitecore将使用Server.Transfer
而不是Response.Redirect
。但是Server.Transfer
不适合常规登录页面重定向,因为:
ASP.NET不验证当前用户是否有权查看Transfer方法提供的资源。
答案 6 :(得分:0)
您可以在Sitecore.config文件中更改它
<site name="shell" ... loginPage="yoururl" ... />
<site name="login" ... virtualFolder="/yoururl" ... />
<site name="admin" ... virtualFolder="/yoururl" ... loginPage="/yoururl/login.aspx" />