/// <summary> /// Performs ACS authentication for 3DS v1 /// </summary> /// <param name="secureEcom"></param> /// <param name="paRes"></param> /// <param name="authenticationResultCode"></param> /// <returns></returns> public string Authenticate_v1(ThreeDSecure secureEcom, out string paRes, AuthenticationResultCode authenticationResultCode = 0) { // Step 1 var formData = new List <KeyValuePair <string, string> >(); formData.Add( new KeyValuePair <string, string>(secureEcom.MessageType, secureEcom.PayerAuthenticationRequest)); formData.Add(new KeyValuePair <string, string>(secureEcom.SessionDataFieldName, secureEcom.ServerTransactionId)); formData.Add(new KeyValuePair <string, string>("TermUrl", secureEcom.ChallengeReturnUrl)); formData.Add(new KeyValuePair <string, string>("AuthenticationResultCode", authenticationResultCode.ToString("D"))); string rawResponse = SubmitFormData(secureEcom.IssuerAcsUrl, formData); paRes = GetInputValue(rawResponse, "PaRes"); // Step 2 formData = new List <KeyValuePair <string, string> >(); formData.Add(new KeyValuePair <string, string>("MD", GetInputValue(rawResponse, "MD"))); formData.Add(new KeyValuePair <string, string>("PaRes", paRes)); rawResponse = SubmitFormData(GetFormAction(rawResponse, "PAResForm"), formData); return(rawResponse); }
public async Task <AuthenticationResultCode> Authenticate(string tenant, string resource, string clientId, string returnUrl) { try { string authority = String.Format("https://login.microsoftonline.com/{0}", tenant); AuthenticationContext ac = new AuthenticationContext(authority); authResult = await ac.AcquireTokenAsync(resource, clientId, new Uri(returnUrl), platformParameters); resultCode = AuthenticationResultCode.Succesful; } catch (AdalException adalEx) { switch (adalEx.ErrorCode) { case "authentication_canceled": resultCode = AuthenticationResultCode.Cancelled; break; case "access_denied": resultCode = AuthenticationResultCode.Denied; break; default: resultCode = AuthenticationResultCode.Unknown; break; } } catch (Exception ex) { resultCode = AuthenticationResultCode.Unknown; error = ex.Message + " " + ex.StackTrace; } return(resultCode); }
public void CardHolderEnrolled_ChallengeRequired_AuthenticationFailed_v1( AuthenticationResultCode authenticationResultCode, string status) { card.Number = GpApi3DSTestCards.CARDHOLDER_ENROLLED_V1; // Check enrollment var secureEcom = Secure3dService.CheckEnrollment(card) .WithCurrency(Currency) .WithAmount(Amount) .Execute(); Assert.IsNotNull(secureEcom); Assert.AreEqual(ENROLLED, secureEcom.Enrolled, "Card not enrolled"); Assert.AreEqual(Secure3dVersion.One, secureEcom.Version); Assert.AreEqual(CHALLENGE_REQUIRED, secureEcom.Status); Assert.IsTrue(secureEcom.ChallengeMandated); Assert.IsNotNull(secureEcom.IssuerAcsUrl); Assert.IsNotNull(secureEcom.PayerAuthenticationRequest); Assert.IsNotNull(secureEcom.ChallengeReturnUrl); Assert.IsNotNull(secureEcom.MessageType); Assert.IsNotNull(secureEcom.SessionDataFieldName); // Perform ACS authentication GpApi3DSecureAcsClient acsClient = new GpApi3DSecureAcsClient(secureEcom.IssuerAcsUrl); string payerAuthenticationResponse; string authResponse = acsClient.Authenticate_v1(secureEcom, out payerAuthenticationResponse, authenticationResultCode); Assert.AreEqual("{\"success\":true}", authResponse); // Get authentication data secureEcom = Secure3dService.GetAuthenticationData() .WithServerTransactionId(secureEcom.ServerTransactionId) .WithPayerAuthenticationResponse(payerAuthenticationResponse) .Execute(); Assert.IsNotNull(secureEcom); Assert.AreEqual(status, secureEcom.Status); string liabilityShift = status == "SUCCESS_ATTEMPT_MADE" ? "YES" : "NO"; Assert.AreEqual(liabilityShift, secureEcom.LiabilityShift); }
public async void PerformLogon(string tenant) { // Application ID from Intune samples (https://github.com/microsoftgraph/powershell-intune-samples) string applicationId = "d1ddf0e4-d672-4dae-b554-9d5bdfd93547"; string authority = "https://graph.microsoft.com"; string redirectUri = "urn:ietf:wg:oauth:2.0:oob"; string authTenant = "common"; if (!String.IsNullOrEmpty(tenant)) { authTenant = tenant; } DependencyService.Register <IntuneDataStore>(); IADALAuthenticator auth = DependencyService.Get <IADALAuthenticator>(); AuthenticationResultCode code = await auth.Authenticate(authTenant, authority, applicationId, redirectUri); switch (code) { case AuthenticationResultCode.Succesful: Results = "Signed on as " + ADALAuthentication.Instance.AuthResult.UserInfo.DisplayableId; break; case AuthenticationResultCode.Cancelled: Results = "Logon cancelled"; break; case AuthenticationResultCode.Denied: Results = "Access denied"; break; default: Results = "Unexpected error: " + ADALAuthentication.Instance.Error; break; } App.Current.MainPage = new Views.MainPage(); }
public AuthenticationResult(AuthenticationResultCode code, string msg = "") { Code = code; AdditionalErrorMessage = msg; }
public string GetAuthenticationResultMessage(AuthenticationResultCode authResult, string langCode) { langCode = langCode.ToLower(); switch (authResult) { case AuthenticationResultCode.AuthenticationFailure: if (langCode == "fa-ir") { return("نام کاربری یا کلمهٔ عبور اشتباه است."); } else { return("Username and password combination did not work!"); } case AuthenticationResultCode.AuthenticationSuccess: if (langCode == "fa-ir") { return("ورود موفقیت آمیز بود."); } else { return("Authentication succeeded."); } case AuthenticationResultCode.DbConnectionError: if (langCode == "fa-ir") { return("خطای اتصال سرویس به پایگاه دادهها. لطفا بررسی کنید که رشته اتصال ConnectionStrings.SysConnection در appsettings.json رشته صحیحی برگرداند."); } else { return("Database connection error. Please make sure ConnectionStrings.SysConnection in appsettings.json points to a valid and online database server."); } case AuthenticationResultCode.InvalidInputParams: if (langCode == "fa-ir") { return("خطای برنامهنویسی: پارامترهای ورودی متد ناصحیح است."); } else { return("Invalid input parameters for api."); } case AuthenticationResultCode.InvalidServiceAccessType: if (langCode == "fa-ir") { return("کاربر مورد نظر به سرویس درخواست شده دسترسی ندارد."); } else { return("User has not required access."); } case AuthenticationResultCode.UnknownServerError: if (langCode == "fa-ir") { return("خطای پردازش نشده."); } else { return("Uknown error"); } } return("Invalid result code."); }
public AuthenticationResult(AuthenticationResultCode authenticationResultCode) { ResultCode = authenticationResultCode; IsValid = false; }
public AuthenticationException(AuthenticationResultCode resultCode) { ResultCode = resultCode; }
private AuthenticationResult(AuthenticationResultCode code, User user) { Code = code; User = user; }
public static AuthenticationResult Fail(AuthenticationResultCode code) { return(new AuthenticationResult(code, null)); }