0

请多多包涵,我对处理身份验证还很陌生。我们所有的用户都在同一个域中,并且在旧站点(Web 窗体、VB.NET)中,我根据用户是否处于特定角色(例如经理或 IT)来隐藏或显示项目。

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

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

我读过一些关于尝试将 Piranha 管理的页面分成单独区域的内容?还是我需要一个单独的站点?如果 Piranha 内容页面位于单独的站点/项目中,我是否仍然可以将 Piranha 内容页面作为部分页面嵌入到我的其他页面中?对不起,如果这些是非常基本的问题。我已经搜索了很多,但仍然卡住了。也许是星期五的大脑。谢谢。

4

2 回答 2

1

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

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

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

编辑

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

问候

哈坎

于 2015-11-02T17:25:57.317 回答
0

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

您还可以查看仅使用 Piranha 来管理您的用户并从此处为 MVC http://piranhacms.org/docs/gists/simple-login-form重新编写 Web 表单代码,然后可能将 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.LoginUser(..) && Piranha.Models.SysUser.LogoutUser()

希望这会为您指明正确的方向!

于 2015-11-02T01:58:02.610 回答