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

有帮助吗?

解决方案

Umbraco 使用 ASP.NET 成员/角色提供程序模型作为其成员资格系统,将默认模型替换为您自己的实现是一个非常简单的步骤。我过去曾这样做过,我想针对 Active Directory 存储对成员进行身份验证,但我无法想象针对自定义数据库进行身份验证会困难得多。

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

您应该能够通过扩展来创建一个简单的会员资格提供程序 Umbraco会员提供商 类并覆盖 验证用户 方法。我自己没有这样做过,但我知道其他人这样做过。

要针对自定义角色提供程序进行身份验证,您需要创建一个派生类 角色提供者. 。您有兴趣重写的方法是 - 是否为用户角色, 查找角色中的用户, 获取所有角色获取用户角色.

这是斯科特·格思里 (Scott Guthrie) 的链接 博客文章 其中包含比您需要了解的更多有关提供程序 API 的信息,包括默认提供程序的源代码。

其他提示

我已经用我的一把umbraco网站两种方法。这两种方法都包括登录和注销,负责验证用户使用自定义的解决方案,并分别结算凭证的用户控件。我还补充,对于这两种方法,一种umbracoMembersOnly属性,我要保护任何文档类型。

在第一种方法中,我不得不每个单独的模板检查,以查看用户是否被从接入限制。抽象这一点,我创建了一个带有isMember或isLoggedIn方法的siteuser类是可用的站点范围,可以从任何一个XSLT或用户控制的宏调用。这种方法的好处是,我可以在每个模板定制自定义消息而不是仅仅提供相同的拒绝访问页面。

第二种方法 - 这是一个我现在更加青睐 - 如果创建一个权限宏负责检查用户的权利访问任何页面(即检查的umbracoMembersOnly属性,如果为真,检查一个会话变量)。这个宏被包含在主模板,所以执行上的每个模板。如果用户没有权限访问当前页面,我重定向到同一页面,但有?alttemplate = RestrictedPage或类似附加到查询字符串。 (请确保您的权限宏检查一个alttemplate = RestrictedPage在查询字符串,否则你会在重定向的无限循环结束了。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top