Скажем, у меня есть база данных SQL Server, содержащая имена пользователей/пароли. В моем «логином» представлении я хочу ввести данные в текстовые поля имени пользователя и пароля, а когда я нажму «login», я хочу использовать свой контроллер входа для сравнения этих значений со значениями в базе данных. Все это довольно прямолинейно: Как работает идентификация в Asp .Net MVC 5
Тем не менее, я хочу использовать атрибут [Authorize]
на остальной части контроллеров моего сайта. После предоставления доступа к странице входа в систему я не могу найти примеров, объясняющих, как «авторизовать» пользователя, чтобы атрибуты ["Authorize"]
распознавали этого пользователя и позволяли им получать доступ к другим контроллерам/действиям. Вот как я начал это задавать, но я не могу найти никакого направления, где взять это отсюда.
public class LoginController : Controller
{
// GET: /<controller>/
//[Route("/Login")]
public ActionResult Index()
{
return View();
}
public bool Login(Workflow.Models.WorkflowContext wfc, string username, string password)
{
var user = wfc.User.Where(u => u.Active && u.Username == username && u.Password == password).ToList();
if (user.Count > 0)
{
//User may log in
return true;
}
else
//Access Denied
return false;
}
}
Например, без пользователя авторизовавшись, я не хочу, чтобы они были в состоянии достигнуть моего «Home Controller»:
[Authorize]
public class HomeController : Controller
{
[Route("/Home")]
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
ViewData["Message"] = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewData["Message"] = "Your contact page.";
return View();
}
public ActionResult Error()
{
return View();
}
}
Я слышал о классах «идентичности» и «SignInManager», и я немного перегружен тем, как использовать любой из этих параметров. Я все еще несколько новичок в ASP .Net MVC, поэтому я пытаюсь понять, как работает авторизация. Благодарю.
Спасибо. Я решил, что это не так просто, как просто сравнение значений в таблице SQL. Лучшее решение - просто вскочить и попытаться понять все, я полагаю. Я уже заглянул в эту ссылку, и мне было любопытно, действительно ли это было сложно. Спасибо за Ваш ответ! – Rinktacular
Ну, это не очень сложно, но я мог видеть «подавляющее». Конечно, есть много информации. Тем не менее, вы всегда можете просто начать с малого и развернуть позже. Сфокусируйтесь только на простом знаке, затем добавьте сброс пароля, управление учетными записями и т. Д. Затем вы можете начать искать сторонние логины и/или двухфакторные авторизации. –
Подавляющее превосходство - отличный способ поставить хаха. Это был мой план, в основном, больше функциональности типа «управление учетными записями», после того как я понял, как обрабатываются фактические логины. Спасибо за помощь :) – Rinktacular