MVC - перенаправить после аутентификации и запомнить
У меня есть страница входа в MVC, где я аутентифицирую пользователя методом записи AJAX.
Я хочу перенаправить пользователя из Home/Index в другой метод контроллера Home/Main после аутентификации имени пользователя и пароля.
Вот мой домашний контроллер:
Function Index() As ActionResult
Return View()
End Function
Function Main() As ActionResult
Return View()
End Function
Вот мой метод поста ajax:
<script type="text/javascript">
$(document).ready(function () {
$('#BtnLogin').click(function () {
var userInfo = {
UserName: $('#txtusername').val(),
Password: $('#TxtPassword').val()
};
$.ajax({
url: '@Url.Content("~/api/Users/CheckUser")',
type: 'POST',
data: JSON.stringify(userInfo),
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function (responseData) {
for (var i = 0; i < responseData.length; i++) {
if (responseData[i].isErrorBool == '1') {
document.getElementById("LblErrors").innerHTML = responseData[i].isErrorMessage;
}
else {
//redirect
}
}
}
});
});
});
</script>
И мой веб-API:
<HttpPost>
Public Function CheckUser(LGIN As LoginModel) As List(Of VerifyReturnLogin)
Dim ReturnJson = Nothing
Dim sb As New StringBuilder()
Dim sw As New StringWriter(sb)
Try
Using jsonWriter As JsonWriter = New JsonTextWriter(sw)
jsonWriter.WriteStartArray()
jsonWriter.WriteStartObject()
Dim c As List(Of UserProfile) = userRepository.CheckUser(LGIN.UserName.Trim, LGIN.Password.Trim)
If c.Count = 0 Or c Is Nothing Then
jsonWriter.WritePropertyName("isErrorBool")
jsonWriter.WriteValue("1")
jsonWriter.WritePropertyName("isErrorMessage")
jsonWriter.WriteValue("Wrong Username or Password.")
jsonWriter.WriteEndObject()
jsonWriter.WriteEndArray()
ReturnJson = JsonConvert.DeserializeObject(Of List(Of VerifyReturnLogin))(sb.ToString)
Return ReturnJson
Else
'Redirect to Home/Main
End If
End Using
Catch ex As Exception
End Try
End Function
Где лучшее место для перенаправления? Клиент или сервер?
И после входа в систему целесообразно ли использовать сеансы в MVC так же, как они используются в ASP.net, чтобы гарантировать, что пользователь проходит проверку подлинности для перехода на главную / главную страницу при каждом обновлении?
Любая помощь будет оценена.
1 ответ
Вы должны использовать в JavaScript window.location = "http://www.yoururl.com";
когда у тебя есть
// перенаправление