새 프로젝트를 만들 때 시작하는 기본 MVC 패키지를 사용하고 있습니다. 로그인 스크립트에이 코드를 추가했습니다. 제출 버튼을 클릭하면 로그인이 시도되고이 User.Identity.IsAuthenticated 작업을 수행 할 수 없습니다. 그래서 내가 가진 후에 특정 작업을 시작할 수 있습니다. 성공적으로 로그인SQL을 사용하여 MVC로 로그인
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 –