2017-04-24 1 views
0

Hallo Ich arbeite an einer Xamarin Forms App, die einen Login-Bildschirm hat, wenn der Benutzer den Benutzernamen und das Passwort eingibt und auf den Login-Button klickt, der mit meinem Web-Service validiert werden soll . jedoch ist es nicht zu tun, dass ich nur die Anmeldung fehlgeschlagen NachrichtXamarin Forms Login-Seite stellt keine Verbindung zu meinem Web-Service her

EDIT: Jetzt bekomme ich einen Absturz auf iOS mit dem folgenden Fehler:

The certificate for this server is invalid. You might be connecting to a server that is pretending to be “service.brainstorminstruments.com” which could put your confidential information at risk.

heren meinem XAML-Code:

<?xml version="1.0" encoding="UTF-8"?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="LoginNavigation.LoginPage" Title="Login"> 
    <ContentPage.ToolbarItems> 
     <ToolbarItem Text="Sign Up" Clicked="OnSignUpButtonClicked" /> 
    </ContentPage.ToolbarItems> 
    <ContentPage.Content> 
     <StackLayout VerticalOptions="StartAndExpand"> 
      <Label Text="Username" /> 
      <Entry x:Name="usernameEntry" Placeholder="username" /> 
      <Label Text="Password" /> 
      <Entry x:Name="passwordEntry" IsPassword="true" /> 
      <Button Text="Login" Clicked="OnLoginButtonClicked" /> 
      <Label x:Name="messageLabel" /> 
     </StackLayout> 
    </ContentPage.Content> 
</ContentPage> 

EDIT ich wurde mit der falschen Klasse

heren den Code hinter:

using System; 
using System.Collections.Generic; 
using System.Net.Http; 
using Newtonsoft.Json; 
using Xamarin.Forms; 

namespace LoginNavigation 
{ 
    public partial class LoginPage : ContentPage 
    { 
     public LoginPage() 
     { 
      InitializeComponent(); 
     } 

     async void OnSignUpButtonClicked (object sender, EventArgs e) 
     { 
      await Navigation.PushAsync (new SignUpPage()); 
     } 

     async void OnLoginButtonClicked (object sender, EventArgs e) 
     { 

var postContent = new FormUrlEncodedContent(new[] { 
         new KeyValuePair<string, string>("username","usernameEntry"), 
         new KeyValuePair<string, string>("password","passwordEntry") 
        }); 

var httpClient = new HttpClient(); 
var serverResponse = await httpClient.PostAsync("https://service.brainstorminstruments.com/api/login", postContent); 
var serverResponseString = await serverResponse.Content.ReadAsStringAsync(); 

//theEditor.Text = serverResponseString; 

Response theResponseObject = JsonConvert.DeserializeObject<Response>(serverResponseString); 



       if (theResponseObject.status == "success") { 
       App.IsUserLoggedIn = true; 
       Navigation.InsertPageBefore (new MainPage(), this); 
       await Navigation.PopAsync(); 
      } else { 
       messageLabel.Text = "Login failed"; 
       passwordEntry.Text = string.Empty; 
       theEditor.Text += theResponseObject.status + "\n"; 
       theEditor.Text += theResponseObject.message + "\n"; 


      } 
     } 


    } 
} 

Ich bin neu auf http-Client, so dass jede Hilfe toll wäre!

Vielen Dank im Voraus!

+0

Haben Sie tatsächlich die Antwort, die Sie für alle Fehlercodes oder Meldungen wieder vom Server untersucht? Wenn Sie überhaupt eine Antwort erhalten, bedeutet das, dass es sich mit dem Server verbinden konnte. – Jason

+0

@Jason Ich habe nicht – Phoneswapshop

+0

Warum haben Sie Anmelde-und Login-Handler auf beiden Seiten? Bist du sicher, dass es den richtigen Namen ruft? – Jason

Antwort

0

The certificate for this server is invalid. You might be connecting to a server that is pretending to be “service.brainstorminstruments.com” which could put your confidential information at risk.

aus allen Artikeln Liste unten, ohne die vollen Fehler produziert oder zu wissen, was iOS-Version Sie arbeiten an (vorausgesetzt, es iOS10 ist), ich werde annehmen dieses Datum/Zeit auf Ihrem Gerät oder MacOS ist falsch.

Dies kann auch durch mehrere Probleme verursacht werden:

  • das Gerät Datum/Uhrzeit falsch ist, oder wenn auf einem Simulator läuft, ist das Datum/Zeit auf Ihrem macOS richtig

  • eine Verwendung selbstsigniert cert signiert

  • Kein gültiges Stammzertifikat für die Zertifikatskette.

Liste der verfügbaren vertrauenswürdigen Root-Zertifikate in iOS 10

Apples HTTPS Server Vertrauen Bewertung:

Hinweis: Ihr Dienst schlägt die Bewertung ssllabs.com in einer Reihe von Bereichen fehl, um unsichere Verschlüsselungscodes zu unterstützen. Dies führt jedoch nicht zum Fehlschlagen von iOS.

+0

Dank für die Antwort, was endete das Problem ist, dass mein Web-Blocker die Service-URL blockiert Sobald ich es in einem anderen Netzwerk ausprobiert hat, stürzt die App nicht mehr ab, aber ich bekomme einen Fehler, der besagt, dass der Benutzername und das Passwort jetzt nicht korrekt sind. Danke im Voraus! – Phoneswapshop

+0

@Phoneswapshop In Ihrem Codebeispiel sollten Ihre 'usernameEntry' und' passwordEntry' etwas wie 'passwordEntry.Text' * ohne * die Anführungszeichen sein, da Sie gerade den Text' usernameEntry' & 'passwordEntry' an Ihren Dienst senden. – SushiHangover

+0

das hat funktioniert Vielen Dank !!! – Phoneswapshop

Verwandte Themen