umbraco身份验证

时间:2009-09-28 21:03:53

标签: c# asp.net umbraco

我有一个现有的社区后端,我喜欢使用Umbraco作为我的表示层。如何使用.Net表单身份验证实现登录/注销? (我不想使用会员功能)。我有不同类型的用户可以访问不同类型的页面。我该怎么控制呢?用户控制?

3 个答案:

答案 0 :(得分:18)

Umbraco为其成员系统使用ASP.NET成员/角色提供程序模型,这是一个非常简单的步骤,可以为您自己的实现交换默认值。我之前已经完成了这项工作,我希望针对Active Directory商店对成员进行身份验证,但我无法想象对自定义数据库进行身份验证会更加困难。

这样做的好处是您可以与Umbraco会员系统完全集成,并且通过使用自定义角色提供程序,编辑人员可以使用内置的页面编辑工具来限制页面,而不必使用内置的页面编辑工具。自己的安全控制。

您应该可以通过扩展 UmbracoMembershipProvider 类并覆盖 ValidateUser 方法来创建简单的成员资格提供程序。我自己没有这样做,但我知道有其他人。

要对自定义角色提供程序进行身份验证,您需要创建一个派生自 RoleProvider 的类。您有兴趣覆盖的方法是 - IsUserInRole FindUsersInRole GetAllRoles GetRolesForUser

以下是Scott Guthrie blog post的链接,其中提供了有关提供商API的更多信息,而不是您需要知道的信息,包括默认提供商的源代码。

答案 1 :(得分:1)

我在umbraco网站上使用了两种方法。这两种方法都包括用于登录和注销的用户控件,这些控件负责使用自定义解决方案和清除凭证分别对用户进行身份验证。对于这两种方法,我还将umbracoMembersOnly属性添加到我想要保护的任何文档类型中。

在第一种方法中,我检查了每个模板以查看用户是否被限制访问。为了抽象,我使用isMember或isLoggedIn方法创建了一个siteuser类,该方法在站点范围内可用,并且可以从XSLT或用户控件宏调用。这种方法的好处是我可以在每个模板上定制自定义消息,而不仅仅是提供相同的访问被拒绝页面。

第二种方法 - 我现在支持的方法 - 如果创建一个Permissions宏,负责检查用户访问任何页面的权限(即检查umbracoMembersOnly属性,如果为true,则检查会话变量)。此宏包含在主模板中,因此在每个模板上执行。如果用户没有访问当前页面的权限,我会重定向到同一页面,但是在查询字符串后附加了?alttemplate = RestrictedPage或类似内容。 (确保您的Permissions宏检查查询字符串中的alttemplate = RestrictedPage,否则您将进入无限循环的重定向。)

答案 2 :(得分:1)

相关问题