C# Asp.net会员及;认证

C# Asp.net会员及;认证,c#,asp.net-mvc,.net-3.5,sqlmembershipprovider,C#,Asp.net Mvc,.net 3.5,Sqlmembershipprovider,作为学习经验,我开始设计使用ASP.NET MVC preview 2开发的web应用程序的基础结构。 我有自己的域模型和数据库模式,希望用于身份验证 我想执行一种基于角色的身份验证变体。然而,我似乎不知道该怎么做 我有一个用户可以访问“博客”。当用户处于预期角色,但用户属于上述“博客”时,如何执行授权 是否需要自定义角色提供程序,或者我是否可以为控制器操作执行授权属性中的逻辑;查询经过身份验证的用户的BlogId并在此执行授权逻辑。我不知道任何内置的方式,目前这样做,但如果有请纠正我 如果可能

作为学习经验,我开始设计使用ASP.NET MVC preview 2开发的web应用程序的基础结构。 我有自己的域模型和数据库模式,希望用于身份验证

我想执行一种基于角色的身份验证变体。然而,我似乎不知道该怎么做

我有一个用户可以访问“博客”。当用户处于预期角色,但用户属于上述“博客”时,如何执行授权

是否需要自定义角色提供程序,或者我是否可以为控制器操作执行授权属性中的逻辑;查询经过身份验证的用户的BlogId并在此执行授权逻辑。我不知道任何内置的方式,目前这样做,但如果有请纠正我

如果可能的话,可以举一个自定义角色提供程序或授权属性的例子来提供此功能


谢谢你

听起来你想要的是同时拥有角色和所有权检查的能力。例如,用户可能具有“作者”角色,但也需要与特定博客具有所有权关系,才能真正创建或更新博客条目。使用标准角色提供程序以及知道如何检查所有权的自定义授权属性(本质上是操作实体和数据库中当前用户项之间的特定外键关系)似乎是一种合理的方法


您可以在上面找到一些示例代码。

听起来您想要的是同时具有角色和所有权检查的功能。例如,用户可能具有“作者”角色,但也需要与特定博客具有所有权关系,才能真正创建或更新博客条目。使用标准角色提供程序以及知道如何检查所有权的自定义授权属性(本质上是操作实体和数据库中当前用户项之间的特定外键关系)似乎是一种合理的方法


您可以在此找到一些示例代码。

感谢您的快速响应。使用authorize属性会与输出缓存冲突;我记得在某个地方读到过这方面的文章。查看authorized属性的源代码,看看它们是如何处理缓存问题的。在我的代码示例中,您可以看到我调用了SetCachePolicy(),它基本上实现了以类似于AuthorizeAttribute本身的方式解决这个问题的代码。谢谢,谢谢你的快速回复。使用authorize属性会与输出缓存冲突;我记得在某个地方读到过这方面的文章。查看authorized属性的源代码,看看它们是如何处理缓存问题的。在我的代码示例中,您可以看到我调用了SetCachePolicy(),它基本上实现了以类似于AuthorizeAttribute本身的方式解决这个问题的代码。非常感谢。