保护Orchard CMS中的每个内容项

时间:2014-04-14 06:16:33

标签: authentication authorization orchardcms orchardcms-1.7

crosspost:https://orchard.codeplex.com/discussions/542161

我了解您可以通过用户角色锁定/保护内容类型,但我想提供保护每个内容项的选项。

我的方法是创建一个自定义部分(让它称之为SecureContentPart),它具有一个布尔值(理想情况下是Editor / Admin中的一个复选框)。我将该部件附加到我想提供scure选项的类型上。在部件的驱动程序中,我检查布尔值以及用户是否经过身份验证。如果用户未经身份验证(匿名)且布尔值为true(项目已锁定),我将抛出一个OrchardSecurityException,它基本上将其路由到login / unathenticated页面。

几个问题:

  1. 首先,这是适当的方法吗?
  2. RequestContext.HttpContext.User.Identity.IsAuthenticated验证的最佳方法是当前用户是否经过身份验证?
  3. 如果我在auth模块中定义自定义部件,则在内容类型的相应模块(事件模块中的事件CT)中执行附加部件时,如何知道哪个部件先运行? (即,如果它们位于单独的模块上,则可以在定义部件之前附加部件)是否更适合在auth模块中定义所有内容类型的部件附件? (想让这些尽可能脱钩)
  4. 谢谢!

1 个答案:

答案 0 :(得分:2)

Orchard中已有一项功能可以保护单个内容项目。它被称为Content Item Permissions