Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax MVC-身份验证后重定向并记住_Ajax_Asp.net Mvc_Authentication_Redirecttoaction - Fatal编程技术网

Ajax MVC-身份验证后重定向并记住

Ajax MVC-身份验证后重定向并记住,ajax,asp.net-mvc,authentication,redirecttoaction,Ajax,Asp.net Mvc,Authentication,Redirecttoaction,我有一个MVC登录页面,在该页面中,我使用AJAX post方法对用户进行身份验证 一旦用户名和密码通过身份验证,我想将用户从Home/Index重定向到另一个控制器方法Home/Main 这是我的家庭控制器: Function Index() As ActionResult Return View() End Function Function Main() As ActionResult Return View() End Function 以下是我的ajax post方

我有一个MVC登录页面,在该页面中,我使用AJAX post方法对用户进行身份验证

一旦用户名和密码通过身份验证,我想将用户从Home/Index重定向到另一个控制器方法Home/Main

这是我的家庭控制器:

Function Index() As ActionResult     
Return View() 
End Function 

Function Main() As ActionResult
Return View() 
End Function
以下是我的ajax post方法:

   <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>
和我的Web 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


任何帮助都将不胜感激。

您应该在javascript窗口中使用。位置=http://www.yoururl.com; 当你有

//重定向


谢谢我如何确保用户每次进入Home/Main时都首先进入Home/Login?您可以使用Authorizate属性。好的,我删除我的答案。我认为问题在于重定向,而不是身份验证。你问在asp.net MVC framewrok中用户通常是如何重定向的,我发表了我的意见,展示了一些代码,你说这不是相同的身份验证方法。我从未见过通过编写JS在这个框架中重定向。但好吧,如你所愿。