2011-04-26 34 views
0

是否有一个好的MVC 3安全库?我对轻量级用户角色权限库感兴趣。我可以自己写图书馆,但我想看看是否有一个好的图书馆可以节省一些时间。好安全库

我可以利用Asp.Net安全性,但我不希望有一个单独的数据库。可以将这些表添加到我的数据库吗?

重要的一点是,这是一个Intranet应用程序,它将使用Active Directory authenticateion。

回答

1

我会推荐Rhino Security。我在工作中的一些项目中使用它,这是一个非常顺利的过程。你不需要一个单独的数据库。

最好的资源可能是Ayendes blog。该项目是开源的,并且在GitHub上。

+0

的博客链接断开:( – cobolstinks 2012-10-10 14:43:15

+0

@cobolstinks你可以试试这个http://ayende.com/Blog/ – VansFannel 2015-09-17 07:02:01

1

如果您使用内置的ASP.NET安全模型(用户,角色等),则可以使用Aspnet_regsql.exe命令/向导将表添加到您自己的数据库中。

ASP.NET Web Site Administration Tool然后可以用来做像添加用户和分配角色的东西(在Visual Studio中转到网站菜单,然后“ASP.Net配置”)。

在MVC中,您可以使用[Authorize]属性(documentation)将控制器或操作方法标记为需要授权或特定角色或用户。

0

全部关于:什么和如何保护?

我创建了一个在线服务最近根据CRM API,而我使用的实体框架(如我的ORM)用我自己的成员资格提供角色提供(我告诉如何this question

在数据库中,我只有一个简单的tblUserstblRoles

使用.NET提供你最终会很高兴,你可以方便的使用方法,为您提供如

[Authorize(Roles = "Partner, Admin")] 
public ActionResult MyAction() 
{ 
    ... 
} 

@if (Roles.IsUserInRole(Context.User.Identity.Name, "Admin")) 
{ 
    <div>You're an ADMIN, Congrats!</div> 
} 

为了确保访问密码,我问了here最好的方法,最后我用BCrypt女巫非常好用。

如果您需要的不仅仅是这一点,我会与alexn回答并使用NHibernateRhino-Security

0

总是有一个单独的数据库为您的用户/密码/角色,我会建议坚持使用.net身份验证提供程序。如果您的应用程序受到攻击,黑客可能会发现,如果您将它们存储在同一个数据库中,则可以更轻松地读取用户/角色/密码。即使你有加密密码的黑客有彩虹表(如果他们可以读取加密的密码很可能他们可以阅读的盐也和蛮力它脱机)。

有很多的内置在.NET身份验证提供安全功能,你通常不会去想滚动当你自己的(滚动自己总是不好的东西有关安全性)。

另外,我想看看什么在OWASP ESAPI可用于.NET,看它是否将是有益的。它不是MVC或认证具体的,但会有很多的,你可以在你的应用程序中使用实用的功能。

https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API

总之回答你的问题:是的,有用于.NET良好的安全库,它有内置。