我被要求創建一個使用MVC的poc,當用戶訪問該網站時。它會限制開箱即用訪問整個網站(授權)。然後開發人員將開始添加授權屬性來解鎖頁面和功能。這種方法可行嗎?如何使用授權和身份驗證來「鎖定」MVC?
目前在MVC中,默認情況下,一旦通過身份驗證,所有內容都會「解鎖」給最終用戶。然後,開發人員將添加授權屬性,開始鎖定與我負責的方法相反的網站。
這種方法的用例是開發人員忘記將authorize屬性添加到關鍵操作中。在這種情況下,現在將一個敏感功能解鎖給任何經過身份驗證的人使用該應用程序。注意:在這種情況下,控制器不具有授權屬性。
編輯:添加片段
一個FilterConfig
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new AuthorizeAttribute());
filters.Add(new RequireHttpsAttribute());
}
}
的Web.Config
<authentication mode="Windows" />
控制器
public class HomeController : Controller
{
[Authorize(Users = "Bob")]
public ActionResult Index()
{
return View();
}
[HttpGet]
public ActionResult Login()
{
return View(new LoginModel());
}
[HttpPost]
public ActionResult Login(LoginModel model)
{
return RedirectToAction("Index");
}
}
EDIT2:
經過幾個小時的工作..我想我意識到我做的是正確的。但是,401沒有聲明屬性時不拋出的原因是因爲該屬性當然是引發401代碼的原因!大聲笑我不知道我是如何錯過這個,但希望沒有人卡住我今天的循環。如果我錯了,請隨時糾正我!
的可能的複製[?如何鎖定在ASP.NET MVC路徑(https://stackoverflow.com/questions/11765030/how-to-lock -down-paths-in-asp-net-mvc) –
我多次閱讀過這篇文章。我可能會錯過一個細節,但我還沒有得到理想的結果。 – user1732364