コード例 #1
0
        /// <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);
        }
コード例 #2
0
 /// <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"
     }));
 }