2016-10-12 6 views
0

json経由で認証トークンを提供するログイン機能を構築しました。これは私がこれまでにログアウトするためのものです。 URLに「logout」という文字列を追加する必要があります。認証トークンと同じ値のCookieを含める必要があります。私は他の多くの方法を試しましたが、これが私が一番近かったと思いました。私はコンテンツを必要としませんが、何かを含める必要はありますか?どんな支援も大歓迎です。ログイン認証トークンをクッキーとして送信しているときにRESTful Web APIをログアウトします

Public Function LOGOUT(inURL As String, authToken As String) 
    Dim inURI As New Uri(inURL + "logout") 
    Dim cookieHolder As New CookieContainer 
    Dim response As New HttpResponseMessage 
    Using Handler As New HttpClientHandler() With {.CookieContainer = cookieHolder} 
     cookieHolder.Add(inURI, New Cookie("authToken", authToken)) 
     Using client As New HttpClient() 
      response = client.PostAsync(inURI, Nothing).Result 
      If response.IsSuccessStatusCode Then 
       Dim json As String = response.Content.ReadAsStringAsync().Result 
       'Form1.TextBox1.Text = client.DownloadString(address).ToString 
       'Dim json As String = client.PostAsync(inURI, Nothing) 
       'Dim InstanceURL As String 
       'InstanceURL = JObject.Parse(json).SelectToken("response.URL").ToString 
       'MsgBox(InstanceURL) 
       'Return InstanceURL 
      End If 
     End Using 
    End Using 
End Function 

それは私が別の方法に

Public Function LOGOUT(inURL As String, authToken As String) As Boolean 
    LOGOUT = False 
    Dim inURI As New Uri(inURL + "logout") 
    Dim client As New HttpClient 
    Dim _cookieContainer As New CookieContainer() 
    Dim myCookie As Cookie = New Cookie("authToken", authToken) 
    Dim request As HttpWebRequest = WebRequest.Create(inURI) 
    Try 
     _cookieContainer.Add(inURI, myCookie) 
     request.CookieContainer = _cookieContainer 
     Dim response As HttpWebResponse = request.GetResponse() ''500 error 
     MsgBox(response.ToString) 
     LOGOUT = True 
    Catch ex As Exception 
     MsgBox(ex.Message.ToString) 
     LOGOUT = False 
    End Try 
End Function 

を試して働いていなかったので、私はまだ私はそれを考え出した500エラーに

答えて

0

を取得しています。私はばかです... LOL私は多くのリクエストプロパティを忘れていました。

Public Function LOGOUT(inURL As String, authToken As String) As Boolean 
    LOGOUT = False 
    Dim inURI As New Uri(inURL + "logout") 
    Dim client As New HttpClient 
    Dim cookieContainer As New CookieContainer() 
    Dim myCookie As Cookie = New Cookie("authToken", authToken) 
    Dim request As HttpWebRequest = WebRequest.Create(inURI) 
    request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" 
    request.AllowAutoRedirect = False 
    request.ContentType = "application/json" 
    request.Method = "POST" 
    'request.ContentLength = authToken.Length 
    Try 
     cookieContainer.Add(inURI, myCookie) 
     request.CookieContainer = cookieContainer 
     Dim response As HttpWebResponse = request.GetResponse() ''500 error 
     If response.StatusCode = "200" Then 
      TextBox1.Text = TextBox1.Text + vbCrLf + "Logged Out " + response.StatusDescription 
      'MsgBox(response.StatusDescription) 
      LOGOUT = True 
     End If 

    Catch ex As Exception 
     MsgBox(ex.Message.ToString) 
     LOGOUT = False 
    End Try 
End Function 
関連する問題