2012-09-15 49 views
1

我不確定它是什麼叫我想要什麼,所以這是我在這裏發佈的主要原因,我是新來的asp.net/mvc和只是webdevelopement。不過,我得到了一個WCF服務,它具有(自定義)安全性。 (IAuthorizationPolicy,IPrincipal和UserNamePasswordValidator)。ASP.net定製表格securty

但是我沒有找到一篇關於ASP.net安全性的好文章。我找到的所有指南都是關於sql成員資格提供程序,有自動genareted databse,但我不想創建一個新的用戶表等,我想用我的舊的(用戶已經hunderds用戶)。但我知道我需要添加一個新表來跟蹤cookie(所以我可以將GUID與cookie GUID進行比較,或者我不知道我只是在這裏和那裏閱讀)。但任何人都可以請給我一個自定義表單身份驗證的好教程,ps我也必須能夠訪問角色,(我已經爲它獲得了(角色)表)。它是那麼可以使用授權與像atributes:

[PrincipalPermission(SecurityAction.Demand, Role = "Admin")] 
public ActionResult GetUserStats(int userid) 
{ 

PS:我知道我會得到出手,因爲這個問題將是太開放等等,我做了調查,沒找不到任何最新的(ASP.NET mvc 4,所有的openauth東西和webmatrix安全預裝)文章如何做到這一切。

編輯:http://dotnetspeak.com/index.php/2011/07/asp-net-mvc-custom-authentication/似乎是迄今爲止我發現的最好的文章,但它使用JSON和內存讀者/作家哈哈?它不會將會話保存在數據庫中?不確定或者這是一個好方法,有什麼建議?

回答

1

我還沒有使用它,所以這不是個人認可,但我剛剛閱讀了關於SimpleMembership,它聽起來正是你所需要的。有關該主題,請參閱Jon Galloway's excellent blog post

1

身份驗證和授權在.NET中完全分離。

要進行身份驗證,您可以考慮編寫a custom MembershipProvider,如果沒有任何標準符合您的需求。

對於授權,您可以考慮編寫a custom RoleProvider,如果沒有標準的滿足您的需求。

MembershipProvider公開用於身份驗證(例如ValidateUser)和用於管理用戶(CreateUser,ChangePassword,ResetPassword,...)的API。

RoleProvider公開一個授權API(IsInRole,GetRolesForUser)和用於管理用戶角色成員資格(CreateRole,AddUsersToRole,...)的API。

如果您已經使用現有數據庫表進行管理,則只需實施基本身份驗證和授權方法:其他人可以拋出NotSupportedException