- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们被告知,“SimpleMembership”是asp.net 成员/角色管理的 future 。
MVC4“互联网应用程序”模板使用 SimpleMembership 实现账户管理。但是,它的实现方式将所有应用程序层合并为 1。
让我感到震惊的是,在他们为使用 MVC 正确分层应用程序所做的所有工作之后,我们得到了这种用于没有 DI、使用 WebMatrix DLL 和完全缺乏 SoC 的成员(member)资格的“前进之路”的伪劣实现。特别是 SimpleMembershipInitialization 的 ActionFilterAttribute - 它继承自 MVC 属性并直接调用 EF DBContext。
我意识到我很懒惰,但是有没有人使用 SimpleMembership 做了一个“正确的”模板,这意味着我可以在我的应用程序中有适当的分隔层,并且在我的 MVC 应用程序中没有 EF DBContext 引用?
最佳答案
SimpleMembership 的强大概念之一是您可以自定义用户配置文件以满足您的应用程序需求,如 discussed in this article .例如,您可能想要 add email confirmation to your registration process这将需要将用户的电子邮件地址存储在用户配置文件中。在以前的 ASP.NET 成员/角色管理中,这很难实现,并且添加的属性存储在 blob 中。呸!
那么这与您关于使 SimpleMembership n-tier 友好的问题有什么关系?虽然我同意模板生成的内容对 n 层不友好,但我还要指出,大多数真正复杂的 MVC 应用程序都需要自定义 SimpleMembership,因此无论如何都需要创建一个特定于应用程序要求的层或层。换句话说,为 SimpleMembership 创建一个可重用的层只会在最基本的 MVC 应用程序中有用。
就我个人而言,我得出的结论是,Internet 模板生成的关于 SimpleMembership 的内容几乎总是会被修改。作为first article I referenced指出定制的第一部分是摆脱 SimplemembershipInitialization 属性,这只是在开发人员不使用表单例份验证的情况下初始化 SimpleMembership 的一种懒惰方式。通常,您会希望将 SimpleMembership 使用的 DBContext 移动到应用程序其余部分的 DBContext 中。用户配置文件通常与应用程序域的其余部分紧密集成。
由于我们讨论的是 SoC 和 ASP.NET 安全性,我认为 ASP.NET 在这方面从来都不是很好。对于表单例份验证,您可以在 Controller 和/或将角色作为参数的操作上使用 Authorize 属性。这迫使应用程序开发人员在设计应用程序域时考虑安全设计。您必须预先确定应用程序将具有哪些角色,并且天堂禁止它们稍后更改,因为现在您必须检查所有这些属性并相应地更新它们。我已经开始使用自定义授权属性,该属性将资源名称和操作类型作为参数(例如:读、写、执行...)。然后我可以将角色映射到数据库中的资源/操作,以便它可以轻松更改,甚至允许管理员更改角色在应用程序中的实现方式。微软对 ClaimsPrincipalPermissionAttribute 采取了同样的方法。现在他们已经合并了WIF进入.NET 4.5。
2013 年 3 月 8 日更新
我在 CodePlex called SimpleSecurity 创建了一个开源项目将 SimpleMembership 与 MVC 应用程序分离。您可以read about it here .我仍然认为开发人员很可能想要修改 SimpleSecurity,但由于这是开源的,他们可以。我们将看看这是否可以发展成为可重用和更好的 SimpleMembership。
关于SimpleMembership - 有人让它对 n 层友好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15006532/
我正在制作一个新的 MVC 4 网站并且我已经设置了 SimpleMembership。我还创建了一个继承自 RolePrincipal 的 CustomPrincipal,并有一个名为 UserIn
看完这篇不错BLOG关于向 UserProfile 表添加自定义数据,我想将其更改为 UserProfile 表存储默认数据的方式 + 另一个存储所有附加信息的类。 在使用 Internet 应用程序
我在 MVC4 应用程序中使用 SimpleMembership,需要用户能够更改自己的用户名。 我有这个功能,所以当用户更改他们的用户名时它可以工作。但是,当调用诸如 Roles.IsUserInr
Jon Galloway 进行了概述 - http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership
我想在这里做两件事: 1. 将电子邮件字段添加到(默认)UserProfile 表中。 奇迹般有效。 用户可以注册用户名和电子邮件。 2. 更改登录以使用电子邮件而不是用户名,这也很有效。 这是问题所
我们被告知,“SimpleMembership”是asp.net 成员/角色管理的 future 。 MVC4“互联网应用程序”模板使用 SimpleMembership 实现账户管理。但是,它的实现
我想创建 azure mvc4 网站 (azurewebsites): 为公司域内的员工提供单点登录(ADFS 已与 ACS 联合) 通过本地帐户或 LiveID OAuth(liveid 是 ACS
使用 SimpleMembership 开发 ASP.Net MVC 4 网站,即使用户已登录,有时也会调用 Login GET Controller 。到目前为止,这仅发生在开发期间(我们还没有进行
我正在创建一个 Intranet 应用程序,我需要帮助来决定使用什么成员资格。 SimpleMembership 据说是 ASP.NET 授权和身份验证的 future ,但它具有那些网络安全内容和网
Membership.ValidateUser()的替代品是什么?在 SimpleMembership 中?我用 WebSecurity.Login验证当前用户,但我遇到的情况是用户必须再次输入密码才
我正在尝试通过使用 SimpleMembership 的 SQL 来获得一个 MVC4 站点,但是每当我创建用户记录时,我总是会遇到错误: [SqlException (0x80131904): Ca
我有 2 个问题: 为什么我会遇到这个异常?我想在我的用户表(它有 6 列:名称、角色、电子邮件、组、ID、软件版本)和成员资格表中创建一行。主键是 Id-SoftwareVersion 对。代码:
关于如何使这段代码以我想要的方式工作,我已经没有想法了。我有 3 个模型,如下所述。 UserProfile 和 Player 一对一关系 首先创建用户配置文件,在注册时将电子邮件确认发送到用户提供的
我遇到以下情况:我正在开发一个需要将数据库操作重定向到每个客户端数据库的 Multi-Tenancy 应用程序。因此,当用户连接到应用程序时,系统会使用该客户端数据库来处理他的 Action 和操作。
我正在通过 Nuget 在 MVC3 中试用“SimpleMembership”,并且已经下载了要玩的示例。问题是我无法弄清楚如何将角色分配给特定用户。 在标准 MVC 成员资格中,您可以使用类似的东
我正在尝试在 Code First 项目中将 SimpleMembership 与 MySQL 结合使用。这是我做的初始值设定项: WebSecurity.InitializeData
我试图在我的MVC 3应用程序中使用SimpleMembership。但是我得到以下错误: System.ArgumentException未处理 通过用户代码。找不到 要求的.Net Framewo
在我使用表单例份验证(通过 SimpleMembership)的 ASP.NET MVC 应用程序中,如何删除用户/帐户? WebSecurity 类不公开 DeleteUser。在 lark 上,我
仍在尝试使用 MVC4 来掌握新的 SimpleMembership。我更改了模型以包含工作正常的 Forename 和 Surname。 我想更改登录时显示的信息,而不是在 View 中使用 Use
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 8年前关闭。 Improve this qu
我是一名优秀的程序员,十分优秀!