C# 登录后无法导航
我在进入商店页面之前提出了申请,然后要求首先登录。所以先检查一下。当它登录时,它可以直接导航到Store页面。但是如果没有登录,用户必须登录,单击登录按钮后,它将导航到“存储”页面。同样,如果您想导航到“Koleksi”页面 XAML:C# 登录后无法导航,c#,login,uwp,C#,Login,Uwp,我在进入商店页面之前提出了申请,然后要求首先登录。所以先检查一下。当它登录时,它可以直接导航到Store页面。但是如果没有登录,用户必须登录,单击登录按钮后,它将导航到“存储”页面。同样,如果您想导航到“Koleksi”页面 XAML: 代码: private void store_点击(对象发送方,点击路由数据源) { 如果(((App)(App.Current)).UserName==“登录您的帐户”) { LoginDialog.IsOpen=true; loginDetail.Vis
代码:
private void store_点击(对象发送方,点击路由数据源)
{
如果(((App)(App.Current)).UserName==“登录您的帐户”)
{
LoginDialog.IsOpen=true;
loginDetail.Visibility=Visibility.Collapsed;
loginEnter.Visibility=可见性.Visibility;
emailBox.Text=“”;
passwordBox.Password=“”;
}
其他的
{
此.Frame.Navigate(type of(Store));
}
}
私有void koleksi_Tapped(对象发送器,tappedroutedventargs e)
{
如果(((App)(App.Current)).UserName==“登录您的帐户”)
{
LoginDialog.IsOpen=true;
loginDetail.Visibility=Visibility.Collapsed;
loginEnter.Visibility=可见性.Visibility;
emailBox.Text=“”;
passwordBox.Password=“”;
}
其他的
{
this.Frame.Navigate(typeof(koleksibuku.KolesiPage));
}
}
私有无效登录单击(对象发送者,路由目标)
{
loadingLogin.IsActive=true;
FailedMessage.Visibility=可见性。已折叠;
ProsesLogin();
}
私有异步void ProsesLogin()
{
FailedMessage.Visibility=可见性。已折叠;
loadingLogin.IsActive=true;
尝试
{
var filter=new Windows.Web.Http.Filters.HttpBaseProtocolFilter();
filter.ServerCredential=新的Windows.Security.Credentials.PasswordCredential(“BSE_Win10(1)”、“mahonidatastream”、“Maho1019”);
var client=new Windows.Web.Http.HttpClient(过滤器);
字符串urlPath=”https://...m/user/auth";
var值=新列表
{
新的KeyValuePair(“email”,emailBox.Text),
新的KeyValuePair(“密码”,passwordBox.password)
};
var response=await client.PostAsync(新Uri(urlPath)、新Windows.Web.Http.HttpFormUrlEncodedContent(值));
response.EnsureSuccessStatusCode();
如果(!response.issucessStatusCode)
{
//请求异常();
loadingLogin.IsActive=false;
}
string jsonText=await response.Content.ReadAsStringAsync();
JsonObject-JsonObject=JsonObject.Parse(jsonText);
bool error=jsonObject[“error”].GetBoolean();
//string message=jsonObject[“message”].GetString();
如果(错误==false)
{
LoginDialog.IsOpen=false;
FailedMessage.Visibility=可见性。已折叠;
((App)(App.Current)).UserName=emailBox.Text;
loadingLogin.IsActive=false;
}
其他的
{
FailedMessage.Visibility=可见性.Visibility;
FailedMessage.Text=“电子邮件或密码不能使用/belum terdaftar”;
loadingLogin.IsActive=false;
}
}
捕获(HttpRequestException-ex)
{
//ConnectionException();
loadingLogin.IsActive=false;
}
}
我有一个问题,当点击“商店”或“bukukoleksi”并单击“登录”后,无法导航到页面“商店”页面或“Koleksi”页面。必须再次点击“商店”或“koleksibuku”才能导航到“商店”和“Koleksi”页面。
如何处理
我有一个问题,当点击“商店”或“bukukoleksi”并单击“登录”后,无法导航到页面“商店”页面或“Koleksi”页面
导航操作由点击的事件调用,单击loginBtn
后,导航操作不应自动触发。处理此问题的一个简单方法是创建bool变量,以在单击loginbtn
之前标记要点击的图像。例如,创建了两个变量isstoreTapped
,iskoleksiTapped
,一旦存储tapped,将isstoreTapped
设置为true,与“koleksi”相同。登录后,通过两个标志判断要导航的页面
bool isstoreTapped = false;
bool iskoleksiTapped = false;
private void loginBtn_Click(object sender, RoutedEventArgs e)
{
loadingLogin.IsActive = true;
FailedMessage.Visibility = Visibility.Collapsed;
ProsesLogin();
if(isstoreTapped==true)
{
this.Frame.Navigate(typeof(Store));
}
if(iskoleksiTapped==true)
{
this.Frame.Navigate(typeof(koleksibuku.KolesiPage));
}
}
private void store_Tapped(object sender, TappedRoutedEventArgs e)
{
if (((App)(App.Current)).UserName == "Sign in to your account")
{
LoginDialog.IsOpen = true;
loginDetail.Visibility = Visibility.Collapsed;
loginEnter.Visibility = Visibility.Visible;
emailBox.Text = "";
passwordBox.Password = "";
isstoreTapped = true;
iskoleksiTapped = false;
}
else
{
this.Frame.Navigate(typeof(Store));
}
}
private void koleksi_Tapped(object sender, TappedRoutedEventArgs e)
{
if (((App)(App.Current)).UserName == "Sign in to your account")
{
LoginDialog.IsOpen = true;
loginDetail.Visibility = Visibility.Collapsed;
loginEnter.Visibility = Visibility.Visible;
emailBox.Text = "";
passwordBox.Password = "";
iskoleksiTapped = true;
isstoreTapped = false;
}
else
{
this.Frame.Navigate(typeof(koleksibuku.KolesiPage));
}
}
private void store_Tapped(object sender, TappedRoutedEventArgs e)
{
if (((App)(App.Current)).UserName == "Sign in to your account")
{
LoginDialog.IsOpen = true;
loginDetail.Visibility = Visibility.Collapsed;
loginEnter.Visibility = Visibility.Visible;
emailBox.Text = "";
passwordBox.Password = "";
}
else
{
this.Frame.Navigate(typeof(Store));
}
}
private void koleksi_Tapped(object sender, TappedRoutedEventArgs e)
{
if (((App)(App.Current)).UserName == "Sign in to your account")
{
LoginDialog.IsOpen = true;
loginDetail.Visibility = Visibility.Collapsed;
loginEnter.Visibility = Visibility.Visible;
emailBox.Text = "";
passwordBox.Password = "";
}
else
{
this.Frame.Navigate(typeof(koleksibuku.KolesiPage));
}
}
private void loginBtn_Click(object sender, RoutedEventArgs e)
{
loadingLogin.IsActive = true;
FailedMessage.Visibility = Visibility.Collapsed;
ProsesLogin();
}
private async void ProsesLogin()
{
FailedMessage.Visibility = Visibility.Collapsed;
loadingLogin.IsActive = true;
try
{
var filter = new Windows.Web.Http.Filters.HttpBaseProtocolFilter();
filter.ServerCredential = new Windows.Security.Credentials.PasswordCredential("BSE_Win10(1)", "mahonidatastream", "Maho1019");
var client = new Windows.Web.Http.HttpClient(filter);
string urlPath = "https://...m/user/auth";
var values = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("email", emailBox.Text),
new KeyValuePair<string, string>("password",passwordBox.Password)
};
var response = await client.PostAsync(new Uri(urlPath), new Windows.Web.Http.HttpFormUrlEncodedContent(values));
response.EnsureSuccessStatusCode();
if (!response.IsSuccessStatusCode)
{
//RequestException();
loadingLogin.IsActive = false;
}
string jsonText = await response.Content.ReadAsStringAsync();
JsonObject jsonObject = JsonObject.Parse(jsonText);
bool error = jsonObject["error"].GetBoolean();
//string message = jsonObject["message"].GetString();
if (error == false)
{
LoginDialog.IsOpen = false;
FailedMessage.Visibility = Visibility.Collapsed;
((App)(App.Current)).UserName = emailBox.Text;
loadingLogin.IsActive = false;
}
else
{
FailedMessage.Visibility = Visibility.Visible;
FailedMessage.Text = "Email atau password tidak sesuai/belum terdaftar";
loadingLogin.IsActive = false;
}
}
catch (HttpRequestException ex)
{
//ConnectionException();
loadingLogin.IsActive = false;
}
}
bool isstoreTapped = false;
bool iskoleksiTapped = false;
private void loginBtn_Click(object sender, RoutedEventArgs e)
{
loadingLogin.IsActive = true;
FailedMessage.Visibility = Visibility.Collapsed;
ProsesLogin();
if(isstoreTapped==true)
{
this.Frame.Navigate(typeof(Store));
}
if(iskoleksiTapped==true)
{
this.Frame.Navigate(typeof(koleksibuku.KolesiPage));
}
}
private void store_Tapped(object sender, TappedRoutedEventArgs e)
{
if (((App)(App.Current)).UserName == "Sign in to your account")
{
LoginDialog.IsOpen = true;
loginDetail.Visibility = Visibility.Collapsed;
loginEnter.Visibility = Visibility.Visible;
emailBox.Text = "";
passwordBox.Password = "";
isstoreTapped = true;
iskoleksiTapped = false;
}
else
{
this.Frame.Navigate(typeof(Store));
}
}
private void koleksi_Tapped(object sender, TappedRoutedEventArgs e)
{
if (((App)(App.Current)).UserName == "Sign in to your account")
{
LoginDialog.IsOpen = true;
loginDetail.Visibility = Visibility.Collapsed;
loginEnter.Visibility = Visibility.Visible;
emailBox.Text = "";
passwordBox.Password = "";
iskoleksiTapped = true;
isstoreTapped = false;
}
else
{
this.Frame.Navigate(typeof(koleksibuku.KolesiPage));
}
}