【问题标题】:ASP.Net MVC Cookies in Console App控制台应用程序中的 ASP.Net MVC Cookie
【发布时间】:2011-04-20 19:52:36
【问题描述】:

我正在尝试创建一个 ASP.Net MVC 端点以进行外部身份验证。这个想法是,我可以从控制台应用程序、WPF 应用程序或其他任何东西调用端点,并为我的服务使用 MVC 模式,将 JSON 返回给经过身份验证的用户,通过属性检查身份验证等。我正在使用控制台应用程序现在只是因为它又快又简单。

到目前为止我有这个:

在我的控制台应用中:

Public Sub MakeLoginRequest()
        Dim address As Uri = New Uri("http://localhost:50536/Account/LogIn")
        Dim request As HttpWebRequest = HttpWebRequest.Create(address)
        request.Method = "POST"
        request.ContentType = "application/json; charset=utf-8"

        Dim loginModel As New LogOnModel With {.UserName = "Richard",
                                               .Password = "Password1",
                                               .RememberMe = False}

        Dim jsonData As String = JsonConvert.SerializeObject(loginModel)
        Dim bytes As Byte() = System.Text.Encoding.ASCII.GetBytes(jsonData)
        request.GetRequestStream.Write(bytes, 0, bytes.Count)

        Dim response As HttpWebResponse = request.GetResponse()
End Sub

在我的控制器中:

<HttpPost()>
Public Function LogIn(model As LogOnModel) As ActionResult
    If ModelState.IsValid Then
        If Membership.ValidateUser(model.UserName, model.Password) Then
            Dim cookie As HttpCookie = FormsAuthentication.GetAuthCookie(model.UserName, False)
            cookie.Expires = DateTime.Now.AddMinutes(20)
            Request.Cookies.Add(cookie)
            Request.Cookies.Add(New HttpCookie("Barney", "Rubble"))

            Return Content("Logged In Ok")
        Else
            Return New HttpUnauthorizedResult
        End If
    Else
        Return New HttpUnauthorizedResult
    End If
End Function

现在,当我在控制台应用程序中检查响应时,从来没有任何 cookie - 真正的 Auth cookie 和我的伪造 Barney Rubble cookie 都不会真正出现!

但是...我在 Chrome 中进行相同的调用并检查响应...并且两个 cookie 都在那里!

有人知道出了什么问题吗?

【问题讨论】:

    标签: asp.net-mvc cookies


    【解决方案1】:

    您需要在您的请求中设置一个 CookieContainer,如下所述:

    http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.cookiecontainer.aspx

    【讨论】:

    • 哇,我认为这可能是我做过/没做过的愚蠢的事情,但这几乎是可耻的!很有魅力!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    相关资源
    最近更新 更多