비동기 단추 클릭에서 값을 가져 오는 데 페이지로드가 발생했습니다. 코드는 다음과 같습니다. 나는 이것에 아주 새롭다 그래서 고려하십시오. 본질적으로 코드는 버튼이 클릭되고 GetAuthorizationCode가 실행 된 후에 막 멈추는 것처럼 보입니다. getReportButton_Click의 임시 응답에 값을 다시 가져 오지만 다른 메소드는 Page_Load 섹션에서 실행되지 않습니다. 본질적으로, 이전 버전의 Microsoft.Identity 참조에서이 작업을 수행했지만 업그레이드 한 후에는 많은 구성 요소를 비동기로 전환해야했습니다. 이제 그 부분이 멈추었습니다.async 메서드가 필요한 값을 얻은 후에 Page_Load가 처리되지 않습니다.
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Params.Get("code") != null)
{
Session["AccessToken"] = GetAccessToken();
Response.Redirect("/Default.aspx");
}
if (Session["AccessToken"] != null)
{
accessToken.Value = Session["AccessToken"].ToString();
GetReport(0);
}
}
protected async void getReportButton_Click(object sender, EventArgs e)
{
var temp = await GetAuthorizationCode();
Response.Write(temp);
}
public async Task<string> GetAuthorizationCode()
{
var serviceUri = "XXXXXXXX";
var clientID = "XXXXXXXXX";
var userName = $"XXXXXXXX";
var password = "XXXXXXXXX";
using (var webClient = new WebClient())
{
var requestParameters = new NameValueCollection();
requestParameters.Add("resource", serviceUri);
requestParameters.Add("client_id", clientID);
requestParameters.Add("grant_type", "password");
requestParameters.Add("username", userName);
requestParameters.Add("password", password);
requestParameters.Add("scope", "openid");
var url = $"XXXXXXXXXXXX";
var responsebytes = await webClient.UploadValuesTaskAsync(url, "POST", requestParameters);
var responsebody = Encoding.UTF8.GetString(responsebytes);
return responsebody;
}
}
저는 이전 코드에서 params 속성으로 데이터를 반환하고 코드 매개 변수가 있는지 확인했습니다. 새 버전의 코드에서 비동기 단추 누르기 작업 후에 왜 멈추는 지 알 것입니다. – jroby
나는 대부분의 코드를 정리했지만, 내가 고민하는 문제는 pageRoad가 getReportButton_Click 반환 값을 기다리는 것이다. – jroby