2011-04-26 39 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良好的安全庫,它有內置。