我在网上看到过很多类似的页面,但大多数都使用新项目而不是现有项目,或者没有必要的功能.所以,我有一个现有的MVC 5项目,并希望将ASP.NET MVC5 Identity与登录,电子邮件确认和密码重置功能集成.
除此之外,我还需要在数据库上创建所有必要的表,即用户,角色,组等(我在我的项目中使用EF Code First).是否有符合这些需求的文章或样本?任何建议将不胜感激.提前致谢...
目前我正在开发一个带有MS Sql server数据库的ASP.Net MVC 5应用程序.我需要实现基于ASP.Net identity 2.0的身份验证和授权.我刚刚介绍了Identity的基本概念,并尝试在我的应用程序中实现相同的功能.由于数据库已经定义,我需要稍微自定义Identity.当我查看数据库时,表格与我通常在样本身份项目中发现的有点不同.

从图像中可以看到,有一个名为user group的表,并根据模块定义了一组权限.默认情况下,用户可以访问相同的权限.如果要更改任何权限,可以通过在"用户权限"表中设置权限来覆盖它.
所以我的第一个问题是ASP.具有自定义授权和授权的网络身份是实现这样的场景的正确方法吗?
从视角来看,我必须根据用户/用户组权限生成菜单,并且还要根据它们启用/禁用按钮.我能够根据数据库值生成菜单.但我需要授权每个客户端请求,因此我认为AuthorizeAttribute是最佳选择.请指教?任何好的设计模式或帖子都很受欢迎.
使用基于声明的模型设计 ASP.Net MVC 应用程序授权。假设我们有一个名为 - Product 的对象。通常,有 4 种不同的操作 - 创建、编辑、删除和查看。授权是使用 ClaimsAuthorize 属性完成的。
[Authorize]
public class ProductController : Controller
{
[ClaimsAuthorize("Product", "VIEW")]
public List<Product> GetProducts()
{
// ....
}
[ClaimsAuthorize("Product", "CREATE")]
public Product CreateNewProduct(Product product)
{
//....
}
}
Run Code Online (Sandbox Code Playgroud)
但就我而言,我必须支持不同类型的 EDIT 权限:
如果同一用户最初创建了产品,则某些用户可以编辑产品
如果产品属于特定类别并且用户也有权访问同一类别,则某些用户可以编辑该产品
部分用户可以编辑所有产品(这是正常的产品编辑操作)
您如何优雅地授权所有这些编辑操作(最好是如上所示的属性驱动),同时我希望将授权代码与正常的 MVC 控制器代码和业务逻辑分开。
[以上代码示例在语法上不正确,我只是为了解释这个问题而编写的] 让我知道您的想法。