在我自己的數據庫中有一個用戶表,它有一個「Type」字段。有3種類型的用戶,發佈者,審計員和管理員。我想知道如何使用[Authorize(Role =「Publisher」)]來篩選登錄的用戶?如何在MVC3中根據自己的數據庫製作RoleFilter
0
A
回答
0
根據我的理解,當使用角色提供者時,將使用[Authorize(Role =「」)]屬性。你可以推出自己的相當簡單 - 見this鏈接的指導。
通常,我所做的是擁有用戶表,角色表和UserInRole表。角色表只有一個角色ID,例如「Admin」和描述。 UserInRole表是將用戶標識鏈接到角色標識的連接表。
這樣一個用戶可以屬於多個角色,而不是隻綁定到一個。
請注意這是我這樣做的方式 - 並不一定是正確的方式。如果你想在用戶表中使用你的「type」字段,那麼它仍然可以工作 - 你的自定義角色提供者只會被實現與我的不同。
編輯:此外 - [授權]屬性將只與一個成員資格提供程序,並且不需要有角色提供程序。我認爲語法是[Authorize(User =「User1,User2」)]或類似的東西。
編輯:把用戶帶到一個錯誤頁面,指示他是不是在正確的角色,你可以添加一些自定義的邏輯,以你的登錄方法在你的AccountController:
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
if (!User.IsInRole("MyRole"))
{
return Redirect("Error");
}
else
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
}
else
{
ModelState.AddModelError("", "The email or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
相關問題
- 1. 根據我自己的數據製作windrose
- 2. 製作我自己的數據類型
- 3. 如何根據自己的價值
- 4. 根據自己的項目
- 5. ASP.NET MVC3數據庫操作
- 6. 我們如何根據自己的內容自動製作div寬度
- 7. 數據庫模式:如何根據類型製作動態表?
- 8. 如何在我自己的數據庫中顯示我的數據Android
- 9. 如何在redis中創建自己的數據庫?
- 10. 如何製作我自己的mnist數據集?
- 11. asp.net mvc3,來自數據庫的角色
- 12. 如何根據在Asp.Net使用jQuery MVC3
- 13. 如何根據Cookie製作數組?
- 14. 如何根據數據庫限制限制表單提交
- 15. SqlMembershipProvider的:用我自己的數據庫作爲用戶存儲數據庫
- 16. 如何連接ASP.NET身份數據庫和我自己的數據庫?
- 17. 如何在Unity3D中製作自己的圖庫
- 18. 如何根據數據庫中存在的行數創建jCheckBox?
- 19. 使用asp.net會員數據庫與我自己的數據庫
- 20. 其中控制使用的數據來自工作數據庫
- 21. 如何根據星期幾過濾數據庫中的數據?
- 22. 如何根據需求顯示數據庫中的數據?
- 23. 如何根據字符拆分數據庫中的數據
- 24. 如何使用自己的數據庫創建自己的地圖
- 25. 如何使用數據庫中的數據製作圖表?
- 26. 如何根據我的數據庫自動生成內容?
- 27. UserStore與我自己的數據庫
- 28. 使用自己的數據庫
- 29. 使用我自己的SQLite數據庫
- 30. 自己的SQLite數據庫和onUpgrade
THX你的建議,我解決了角色問題。但是我在授權後遇到了一個關於登錄的新問題。如果用戶登錄後不在角色中,我想顯示一個錯誤頁面。我應該做一個自定義的AuthorizeAttribute? – vulgur
查看我的編輯...我認爲這將做你想做的。 – Jack
啊,登錄方法....爲什麼我沒有想過之前!福我 – vulgur