(外部 API への) 投稿された要求のステータスが成功したかどうかを確認する次のコードがあります。成功した場合は、Windows Phone アプリで作成した Interface.xaml ページに移動する必要があります。xaml ページ間の移動を処理するクラスがわからない
public bool UsernameAndPassword(string username, string password)
{
data = "grant_type=" + GRANTTYPE + "&username=" + username + "&password=" + password + "&client_id=" + CLIENTID + "&redirect_uri=" + REDIRECTURI + "&client_secret=" + CLIENTSECRET;
return true;
}
public bool Authenticate()
{
// form the URI
UriBuilder fullUri = new UriBuilder(urlPath);
fullUri.Query = data;
// initialize a new WebRequest
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(fullUri.Uri);
request.Method = "POST";
// set up the state object for the async request
DataUpdateState dataState = new DataUpdateState();
dataState.AsyncRequest = request;
// start the asynchronous request
request.BeginGetResponse(new AsyncCallback(HandleResponse),
dataState);
return true;
}
private void HandleResponse(IAsyncResult asyncResult)
{
// get the state information
DataUpdateState dataState = (DataUpdateState)asyncResult.AsyncState;
HttpWebRequest dataRequest = (HttpWebRequest)dataState.AsyncRequest;
// end the async request
dataState.AsyncResponse = (HttpWebResponse)dataRequest.EndGetResponse(asyncResult);
if (dataState.AsyncResponse.StatusCode.ToString() == "OK")
{
// What needs to go here to navigate to another xaml page?
// something like this? - NavigationService.Navigate(new Uri("Interface.xaml", UriKind.Relative));
}
}
public class DataUpdateState
{
public HttpWebRequest AsyncRequest { get; set; }
public HttpWebResponse AsyncResponse { get; set; }
}
この問題は、if ステートメントの HandleResponse メソッド内で見つけることができます。
// 編集::
NavigationService にアクセスできる PhoneApplicationPage クラスを拡張しました...ただし、プログラムを実行すると、次を使用して新しいページに移動します。
NavigationService.Navigate(new Uri("Interface.xaml", UriKind.Relative));
実行時エラーがスローされます。
An exception of type 'System.UnauthorizedAccessException' occurred in System.Windows.ni.dll but was not handled in user code
If there is a handler for this exception, the program may be safely continued.
何か案は?