/// <summary> /// Retrieves an authentication cookie from a DSS service. /// </summary> /// <returns>An authentication cookie</returns> private async Task <WebServices.DssAuthentication.AuthorizationCookie> GetAuthorizationCookie(AuthPlugInInfo authInfo) { var httpBinding = new System.ServiceModel.BasicHttpBinding(); var upstreamEndpoint = new System.ServiceModel.EndpointAddress(UpstreamEndpoint.GetAuthenticationEndpointFromRelativeUrl(authInfo.ServiceUrl)); if (upstreamEndpoint.Uri.Scheme.Equals("https", StringComparison.OrdinalIgnoreCase)) { httpBinding.Security.Mode = System.ServiceModel.BasicHttpSecurityMode.Transport; } // Create a DSS client using the endpoint retrieved above IDSSAuthWebService authenticationService = new DSSAuthWebServiceClient(httpBinding, upstreamEndpoint); // Issue the request. All accounts are allowed, so we just generate a random account guid and name var cookieRequest = new GetAuthorizationCookieRequest(); cookieRequest.GetAuthorizationCookie = new GetAuthorizationCookieRequestBody(); cookieRequest.GetAuthorizationCookie.accountGuid = AccountName; cookieRequest.GetAuthorizationCookie.accountName = AccountGuid.ToString(); var getAuthCookieResponse = await authenticationService.GetAuthorizationCookieAsync(cookieRequest); if (getAuthCookieResponse == null || getAuthCookieResponse.GetAuthorizationCookieResponse1.GetAuthorizationCookieResult.CookieData == null) { throw new Exception("Failed to get authorization token. Response or cookie is null."); } return(getAuthCookieResponse.GetAuthorizationCookieResponse1.GetAuthorizationCookieResult); }
/// <summary> /// Handle requests for a authorization token. This implementation issues tokens for all requests without performing any checks. /// </summary> /// <param name="request">The request paramerets. Not used in this implementation.</param> /// <returns>Authorization cookie</returns> public Task <AuthorizationCookie> GetAuthorizationCookieAsync(GetAuthorizationCookieRequest request) { return(Task.FromResult(new AuthorizationCookie() { CookieData = new byte[5], PlugInId = "15" })); }