将Piranha CMS与MVC5和Windows身份验证结合使用



请耐心等待,我对身份验证还很陌生。我们所有的用户都在同一个域上,在旧网站(Web窗体、VB.NET)中,我根据用户是否担任特定角色(例如经理或IT)来隐藏或显示项目。

我刚刚用MVC5在新网站上安装并测试了Piranha 2.2.5,我喜欢它的功能。它应该大大减少我为人们硬编码的东西的数量。(事实上,我很震惊我们还没有CMS。)然而,我注意到食人鱼管理员使用表单身份验证。这对经理页面来说很好;只有少数人登录才能真正上传内容。

但是,我如何在布局和其他页面上保留检测ActiveDirectory/Windows用户标识的能力?我们有数百名用户,他们的流动性很高,如果让他们每个人都以唯一的身份登录到intranet,时间会让人望而却步。另外,在登录主站点方面,我真的不需要任何主动身份验证。我们只是允许所有用户查看所有页面,目前不存储任何个人信息。经理们基本上只是得到一些额外的菜单项。

我读过一些关于试图将Piranha管理的页面分离到一个单独的区域的文章?还是我需要一个单独的网站?如果Piranha内容页在一个单独的网站/项目中,我还能将它们作为部分页面嵌入到我的其他页面中吗?很抱歉,如果这些都是非常初级的问题。我找了很多,但还是被卡住了。也许是星期五的大脑。谢谢

如果我没有弄错的话,用web.config为web应用程序的不同部分配置不同的身份验证设置是完全可行的。

换句话说,应该可以对公共页面使用Windows身份验证,对/manager下的所有内容使用窗体。

唯一的缺点是预览功能不起作用,因为它取决于被预览的公共页面是否可以访问经过身份验证的表单管理员用户。

编辑

关于URL:s上的"home"前缀,有一个名为PrefixlessPermalinks的配置选项可以删除此

问候

Håkan

我认为您需要将Piranha置于被动模式,web.config文件中的条目下有一个条目。这应该允许MVC代替Piranha进行路由。(当我这样做的时候,我无法访问经理区域,但我也没有花太长时间研究原因)

你也可以考虑只使用Piranha来管理你的用户&从这里为MVC重新编写Web窗体代码http://piranhacms.org/docs/gists/simple-login-form然后可能将piranha用户转换为活动目录用户?

来自链接的代码:

<form method="post" action="@Href("~/account/login")">
  <input type="hidden" name="returnurl" value="@Href("~/home/mypage")" />
  <input type="hidden" name="failureurl" value="@Href("~/home/mypage?msg=err")" />
  <label>Username:</label><input type="text" name="login" />
  <label>Password:</label><input type="password" name="password" />
  <button type="submit">Login</button>
</form>

来自同一页面上的评论:

您可以调用Piranha.Models.SysUser.LogUser(..)&amp;Piranha.Models.SysUser.LogoutUser()

希望这能为你指明正确的方向!

最新更新