Я использую пакет MVC по умолчанию, с которого вы начинаете, когда вы создаете новый проект. Я добавил этот код к моему сценарию входа, после того как он нажмет кнопку «Отправить», он попытается войти в систему, и это не позволит мне сделать эту работу User.Identity.IsAuthenticated, поэтому я могу скрыть некоторые вещи после того, как он успешно вошли в системуВойти с помощью MVC с помощью SQL
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
using (SqlConnection connection = new SqlConnection("server=server; database=db; user id=user; password=password"))
{
connection.Open();
using (SqlCommand command = new SqlCommand("SELECT * FROM ACCOUNTS WHERE [UserName] = @param1 AND [PasswordField] = @param2 AND [Active] = 1", connection))
{
command.Parameters.Clear();
command.Parameters.AddWithValue("param1", model.UserName);
command.Parameters.AddWithValue("param2", model.Password);
SqlDataReader adapter = command.ExecuteReader();
if (adapter.Read())
{
var user = new ApplicationUser { UserName = model.UserName, Email = model.UserName };
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
}
}
else
{
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
}
connection.Close();
connection.Dispose();
return RedirectToAction("Index", "Home", "Index");
}
}
Если он вошел в Я хочу сделать что-то вроде
public ActionResult IsAuthenicated()
{
if (User.Identity.IsAuthenticated)
{
//go to new screen
}
else
{
//return back to login screen
}
}
Какую версию MVC вы используете? Кроме того, есть ли причина, по которой вы хотите реализовать свою собственную систему аутентификации вместо использования чего-то вроде ASPNet Identity? –
@BrendanGreen. Я хотел бы использовать ASPNet Identity, но моя проблема заключается в том, что я не знаю, как связать базу данных с ней, чтобы он мог проверить логин в моей таблице. –
Начните здесь: http://www.asp.net/identity –