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, чтобы гарантировать, что пользователь аутентифицирован для перехода на Home / Main при каждом обновлении?

Любая помощь будет оценена по достоинству.


person HelpASisterOut    schedule 17.06.2014    source источник
comment
Хорошо, удаляю свой ответ. Я думал, что вопрос касается перенаправления, а не аутентификации. Вы спросили, как обычно перенаправляются пользователи в asp.net MVC framewrok, я опубликовал свое мнение, показал некоторый код, и вы сказали, что это не тот же метод аутентификации. Я никогда не видел перенаправления в этом фреймворке посредством написания JS. Но ладно, как хочешь.   -  person sestus    schedule 17.06.2014


Ответы (1)


Вы должны использовать в javascript window.location = "http://www.yoururl.com";, когда у вас есть

// перенаправление

person Mediator    schedule 17.06.2014
comment
Спасибо. Как я могу убедиться, что каждый раз, когда пользователь переходит в Home / Main, он сначала проходит через Home / Login? - person HelpASisterOut; 17.06.2014
comment
Вы используете атрибут Authorizate. - person Mediator; 17.06.2014