SqlRoleProvider& aspnet_regsql?

时间:2009-01-08 14:18:26

标签: .net asp.net security roles

这不是特定于asp.net的,其中一些应用程序是WinForms,也将在未来添加一些Wpf和可能的一些silverlight应用程序。

我要求放置角色&基于权限的访问安全性到我们正在开发的新应用程序中。

一般来说.net RoleProviders,特别是SqlRoleProvider似乎拥有我们需要的一切,但是我对aspnet_regsql需要的Db Schema更改有一些担忧。

我已经尝试使用Google搜索,但我不确定该要求什么。

  1. 在.net版本之间升级它有多简单(或不)?
  2. .Net 2.0和.net 3.5应用程序是否会使用相同的模式?即,我们可以拥有.net 2.0和3.5个应用程序在同一个Db中使用相同的权限吗?
  3. Sql Security提供商有多稳定,有人在愤怒中使用它们吗?它们值得使用吗?
  4. 我最好咬掉子弹并实现我自己的 - 有限的 - 角色功能(将完成我需要的一切)和我自己的自定义RoleProvider?

    正如你所看到的那样,我陷入了“不想重新发明轮子”和“不会遇到一些未知的第三方代码问题”(我不知道为什么,这就是我问你的原因)

    提前感谢您的建议&推荐,

    BW

2 个答案:

答案 0 :(得分:3)

我多年来一直在使用内置提供程序(在不同的项目上),没有任何问题。自从它被淘汰出局以来,没有任何改变。

如果sql提供程序执行了您需要的所有操作,请使用它,除非您需要其他功能,否则没有理由推出自己的。

您可以关注的一件事 - 这适用于个人资料,成员资格和角色 - 是sprocs的效率。如果你看一下sprocs,你会发现每次执行都会从各个表中获取数据。例如,几乎每个查询(我记得都在查看),查询当前请求的appid。如果您只有一个在数据库上运行的应用程序可能有些过度且可以更改。 Omar Al Zabir的这篇article (The Code Project)讨论了改进概况。

答案 1 :(得分:1)

我相信SqlRoleProvider是可行的方法。它具有高度可扩展性且易于设置。除非你已经推出了自己经过验证的解决方案(那么你为什么要发布这个问题),否则这就不用了。

我同意webchanix,系统确实允许多个应用程序并进行大量的表扫描,但最后,我认为我们正在谈论基于它的好处的非常小的性能。