public async Task <ActionResult> GetAccounts() { var token = this.Session["userTokenData"] as TokenModel; this._tlsCertificate.Import(ReadFile(this.tlsCertPath), "millennium", X509KeyStorageFlags.DefaultKeySet); this._signCertificate.Import(ReadFile(this.signCertPath), "millennium", X509KeyStorageFlags.DefaultKeySet); var httpHandler = new WebRequestHandler(); httpHandler.ClientCertificateOptions = ClientCertificateOption.Manual; httpHandler.ClientCertificates.Add(this._tlsCertificate); var api = new PolishAPI(httpHandler, new RequestSigningHandler(this._signCertificate)); var request = new AccountsRequest( new RequestHeaderAIS(token.accessToken, Guid.NewGuid().ToString(), sendDate: DateTime.Now.ToString(), tppId: "*****@*****.**", isDirectPsu: true), true, null, 0); api.BaseUri = new Uri("https://bm-devportal-testwebapp02.azurewebsites.net"); api.AcceptLanguage = "pl-PL"; api.HttpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Bearer " + token.accessToken); api.XJWSSIGNATURE = JWT.Encode(JsonConvert.SerializeObject(request), this._signCertificate.GetRSAPrivateKey(), JwsAlgorithm.RS256); ; var result = await api.GetAccountsWithHttpMessagesAsync(request); var model = result.Body as AccountsResponse; return(View(model.Accounts)); }
// GET: UserLogged public async Task <ActionResult> Logged(string code, string state, string error, string redirect) { if (redirect == null) { return(new EmptyResult()); } var client = new HttpClient(); var payload = new Dictionary <string, string>() { { "sub", "*****@*****.**" } }; this._signCertificate.Import(ReadFile(this.signCertPath), "millennium", X509KeyStorageFlags.DefaultKeySet); string tokenSigned = JWT.Encode(payload, this._signCertificate.GetRSAPrivateKey(), JwsAlgorithm.RS256); var link = string.Format( "https://bm-devportal-testwebapp03.azurewebsites.net/tokens?code={0}&redirect_uri={1}&client_id={2}&client_assertion={3}", code, "http://*****:*****@bankmillennium.pl", tokenSigned); var result = await client.GetAsync(link); var token = await result.Content.ReadAsAsync <TokenModel>(); this.Session["userTokenData"] = token; this._tlsCertificate.Import(ReadFile(this.tlsCertPath), "millennium", X509KeyStorageFlags.DefaultKeySet); this._signCertificate.Import(ReadFile(this.signCertPath), "millennium", X509KeyStorageFlags.DefaultKeySet); var httpHandler = new WebRequestHandler(); httpHandler.ClientCertificateOptions = ClientCertificateOption.Manual; httpHandler.ClientCertificates.Add(this._tlsCertificate); var api = new PolishAPI(httpHandler, new RequestSigningHandler(this._signCertificate)); var request = new AccountsRequest( new RequestHeaderAIS(token.accessToken, Guid.NewGuid().ToString(), sendDate: DateTime.Now.ToString(), tppId: "*****@*****.**", isDirectPsu: true), true, null, 0); api.BaseUri = new Uri("https://bm-devportal-testwebapp02.azurewebsites.net"); api.AcceptLanguage = "pl-PL"; api.HttpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Bearer " + token.accessToken); api.XJWSSIGNATURE = JWT.Encode(JsonConvert.SerializeObject(request), this._signCertificate.GetRSAPrivateKey(), JwsAlgorithm.RS256); var result2 = await api.GetAccountsWithHttpMessagesAsync(request); var model = result2.Body as AccountsResponse; var account = model.Accounts.First(); var request2 = new AccountInfoRequest { AccountNumber = account.AccountNumber, RequestHeader = new RequestHeaderAIS(token.accessToken, Guid.NewGuid().ToString(), sendDate: DateTime.Now.ToString(), tppId: "*****@*****.**", isDirectPsu: true) }; var result3 = await api.GetAccountWithHttpMessagesAsync(request2); var accountInfo = result3.Body as AccountResponse; return(View(accountInfo.Account)); }