ASP.NET 4.5/C#/ SQL 2012另一個ASP.NET自定義成員資格/角色提供
我已經有一個用戶表和角色/權限列一個定義良好的數據庫。該列包含角色的分隔列表。我希望在後端使用ASP.NET的內置功能,所以我可以懶惰,並使用諸如按角色篩選和按角色篩選。我想從數據庫中讀取我的角色,並告訴ASP這些是我的用戶所在的角色。自定義...但希望很簡單。以下是我迄今爲止:
//create an identity
GenericIdentity objIdentity = new GenericIdentity("Matt"); //this would actually be the username/email of the newly authenticated user
//get roles for user
string[] strRoles = { "ADW", "USR" }; //this will get read from the database on authentication
//add identity and roles to a principal
GenericPrincipal objPrincipal = new GenericPrincipal(objIdentity, strRoles);
//add to current user
HttpContext.Current.User = objPrincipal;
//add the principal to the current context of the current thread
Thread.CurrentPrincipal = objPrincipal; //not sure what this does, doesn't affect my results/tests
如果我執行上面的代碼,然後運行以下命令:
Response.Write(User.IsInRole("ADW"));
Response.Write(User.IsInRole("xxx"));
我得到一個真正的/預期假。但是,這不會持續到下一頁。我對定製的成員/角色提供者做了大量的閱讀,但是我找不到這個具體的用例。大多數人都在談論爲此任務專門設置數據庫。我也看到提到了更新的簡單會員,但是也沒有從這方面得到任何的愛。我希望有一個解決方案涉及我已經在做的事情。我很想在用戶驗證時執行此代碼,但能夠在其他頁面中引用此用戶。我可以隨時調用數據庫來查看每個頁面。我假設會吸引人,而這不是內置提供者所做的。
謝謝大家。
我不完全明白。我試圖利用諸如讀取角色的LoginView和web.config權限。我想從代碼隱藏中爲當前用戶添加一個角色。 – Matt
這是RoleProvider用於讀取角色並將其存儲到數據庫的內容。爲了登錄用戶,必須使用表單cookie。 –
編輯我的答案。仍然不確定你錯過了哪部分。 –