asp.net-mvc – 帮助MVC身份验证/授权解决方案
我正在构建一个MVC 3应用程序,需要找到一个管理身份验证和授权的好解决方案.我使用过Membership,在这种情况下我不想使用它 – 我更喜欢使用自己的设计和表格.但是,如果合适的话,我愿意使用内置接口实现我的自定义逻辑.
这是我的要求: >用户可以是一个或多个角色的一部分. 我确定之前有人做过这样的事情.但基于我在这个主题上看到的十几个博客和SO帖子,没有一个解决方案真的适合这个,它似乎并不存在.但是我很有可能无法将各个部分组合在一起,并且适当的东西正在盯着我. 例如,我已经阅读了一些关于“基于声明”的身份验证与“基于角色”的身份验证,但不确定我是否了解足够的差异来进行呼叫,也不确定天气是否需要ASP.NET成员身份.我还读到了通过实现IPrincipal和IIdentity以及使用动作过滤器来驱动控制器访问来构建自定义成员资格,但我没有找到任何全面的指南来实现这一点,而且我仍然相当绿色的动作过滤器. 我也不确定是否应该使用一些.NET的内置控件进行注册,身份验证,忘记密码等等.我的本能不是,因为我通常喜欢自己构建这些,我也不确定如果他们可以在自定义设置中工作.但如果我错了,请告诉我. 提前致谢. 解决方法
请记住,ASP.NET身份验证/授权框架有两个不同的部分.第一个是具有成员资格和角色提供者的前端,然后是使用
SqlMembershipProvider和
SqlRoleProvider的后端.
根据我的个人经验,我发现编写自己的MembershipProvider和RoleProvider自定义版本最简单.我认为它将满足您的每一个要求. 更新:Jared问我:“似乎实现MembershipProvider和RoleProvider增加了我将永远不需要/使用的大量开销(和绒毛).这仍然是要走的路吗?这样做我有什么好处?” 我认为如果您使用身份验证/授权框架,您可以利用许多内置的东西.例如,您可以根据[Authorize(Roles =“DefaultUser”)]等角色为控制器设置方法授权.如果需要,您也可以直接在视图中放置这种检查代码,例如: <% if (Request.IsAuthenticated) { %> <p>Only authenticated users see this.</p> <% } %> 此外,身份验证/授权负责设置角色/用户cookie和加密它们的繁琐工作.如果你自己动手,那么这就是你必须自己做的事情. Jared还希望,“用户可以成为一个或多个角色的一部分.”并且“角色可以映射到任意数量的”权限“(多对多).权限类似于”可以编辑其他用户的帖子“. 我认为角色和权限是一回事.因此,单个用户可以拥有多个角色和权限.像“CanEditPosts”“Admin”等. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – MVC模型绑定到集合不以0索引开头的集合
- asp.net-mvc – 使用Entity Framework 6和ViewModel从数据库
- 在 Xunit 中使用依赖注入
- asp.net-mvc-3 – 根据url更改控制器中的布局
- ASP.NET MVC 3 HtmlHelper异常不能识别继承的接口上的Model
- asp.net-mvc – ASP.NET MVC ModelState始终对Fluent验证有
- asp.net-web-api – 带有OWIN OAuth承载令牌的Web Api 2
- asp.net-mvc – 使用ASP.NET MVC中绝对路径访问视图
- 身份验证 – 我们可以在Asp.NET Core中销毁/无效JWT令牌吗?
- asp.net – 类库中的dotnet5.4和net451是什么?
- asp.net – 成员资格生成密码仅字母数字密码?
- asp.net-mvc – ASP.NET MVC – 正确使用View Mo
- 将asp.net应用程序移植到天蓝色有多大挑战?
- asp.net-web-api – 使用apicontroller对odata E
- asp.net app中的会话变量超时
- Getting Started with ASP.NET Core
- asp.net-mvc – 在TryUpdateModel之前更新值提供
- 扩展GridView实现的一个自定义无刷新分页,排序,
- 防止在Asp.Net Core ViewComponents中加载多个Ja
- 当使用ASP.Net Membership和另外一个表来存储用户