Ejemplo n.º 1
0
        private bool TryReadCodeViewData(string peFilePath, out CodeViewDebugDirectoryData codeViewData, out uint stamp)
        {
            try
            {
                var peStream = PortableShim.File.OpenRead(peFilePath);
                using (var peReader = new PEReader(peStream))
                {
                    foreach (var entry in PEUtilities.ReadDebugDirectory(peReader, peStream))
                    {
                        if (entry.EntryType == DebugDirectoryEntryType.CodeView)
                        {
                            codeViewData = PEUtilities.ReadCodeViewDebugDirectoryData(peStream, entry);
                            stamp        = entry.Stamp;
                            return(true);
                        }
                    }
                }
            }
            catch
            {
            }

            codeViewData = default(CodeViewDebugDirectoryData);
            stamp        = 0;
            return(false);
        }
Ejemplo n.º 2
0
        internal override UseSiteInfo <AssemblySymbol> GetUseSiteInfo()
        {
            AssemblySymbol primaryDependency = PrimaryDependency;

            if (!_lazyCachedUseSiteInfo.IsInitialized)
            {
                UseSiteInfo <AssemblySymbol> result = new UseSiteInfo <AssemblySymbol>(primaryDependency);
                CalculateUseSiteDiagnostic(ref result);
                deriveCompilerFeatureRequiredUseSiteInfo(ref result);
                _lazyCachedUseSiteInfo.Initialize(primaryDependency, result);
            }

            return(_lazyCachedUseSiteInfo.ToUseSiteInfo(primaryDependency));

            void deriveCompilerFeatureRequiredUseSiteInfo(ref UseSiteInfo <AssemblySymbol> result)
            {
                var            containingType     = (PENamedTypeSymbol)ContainingType;
                PEModuleSymbol containingPEModule = _containingType.ContainingPEModule;
                var            diag = PEUtilities.DeriveCompilerFeatureRequiredAttributeDiagnostic(
                    this,
                    containingPEModule,
                    Handle,
                    allowedFeatures: CompilerFeatureRequiredFeatures.None,
                    new MetadataDecoder(containingPEModule, containingType));

                diag ??= containingType.GetCompilerFeatureRequiredDiagnostic();

                if (diag != null)
                {
                    result = new UseSiteInfo <AssemblySymbol>(diag);
                }
            }
        }
Ejemplo n.º 3
0
        public void Validate_UserCredentials_Works()
        {
            var peutils = new PEUtilities(authUrl, appUrl, appID, appKey, integrationSecret);
            var isValid = peutils.ValidateUserCredentials("*****@*****.**", "password");

            Assert.IsTrue(isValid, "User Not Validated");
        }
Ejemplo n.º 4
0
        public void List_UserGroups_Returns_Data()
        {
            var peutils = new PEUtilities(authUrl, appUrl, appID, appKey, integrationSecret);
            var groups  = peutils.ListGroupsForUser("*****@*****.**");

            Assert.IsTrue(groups.Count() > 0, "No Groups Returned");
        }
Ejemplo n.º 5
0
        public void FindUser_Returns_Data()
        {
            var peutils = new PEUtilities(authUrl, appUrl, appID, appKey, integrationSecret);
            var hasUser = peutils.IsUserValid("*****@*****.**");

            Assert.IsTrue(hasUser, "No User Returned");
        }
Ejemplo n.º 6
0
        public void ListGroups_Returns_Data()
        {
            var peutils = new PEUtilities(authUrl, appUrl, appID, appKey, integrationSecret);
            var groups  = peutils.ListAllGroups();

            Assert.IsTrue(groups.Count() > 0, "No Groups Returned");
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Creates a PE Identity from a Username - nOt to be called from IAuthenticationExtension2 Methods
        /// </summary>
        /// <param name="username">The Username to Create an Identity For</param>
        /// <returns>ClaimsIdenity with Name and Roles</returns>
        private ClaimsIdentity CreatePEIdentity(string username)
        {
            // Create a Custom Identity
            var claims = new List <Claim>();

            claims.Add(new Claim(ClaimTypes.Name, username));
            var peUtils = new PEUtilities(m_oidcAuthority, m_peAppUrl, m_peAppID, m_peAppKey, m_peIntegrationSecret);

            // add PE Roles
            var roles = peUtils.ListGroupsForUser(username);

            claims.AddRange(roles.Select(r => new Claim(ClaimTypes.Role, r)));

            return(new ClaimsIdentity(claims, "custom", ClaimTypes.Name, ClaimTypes.Role));
        }
Ejemplo n.º 8
0
 /// <summary>
 /// Supports WebService Logins (via SSMS or calling the .asmx Web Services)
 /// </summary>
 /// <param name="userName">Username for the User</param>
 /// <param name="password">Password to verify with the Open Id Provider</param>
 /// <param name="authority">Not used if password is provided.  If no password is empty, a valid OIDC AccessToken can be sent here</param>
 /// <returns></returns>
 public bool LogonUser(string userName, string password, string authority)
 {
     // Support Basic Password Authentication
     if (!String.IsNullOrWhiteSpace(userName) && !String.IsNullOrWhiteSpace(password))
     {
         var peUtils = new PEUtilities(m_oidcAuthority, m_peAppUrl, m_peAppID, m_peAppKey, m_peIntegrationSecret);
         return(peUtils.ValidateUserCredentials(userName, password));
     }
     // Also support passing in a validatable token as Authority
     if (!String.IsNullOrWhiteSpace(userName) && !String.IsNullOrWhiteSpace(authority))
     {
         var oidcUtils = new OIDC.OIDCUtilities(new Uri(m_oidcAuthority));
         // Do not validate the Nonce as this was not an interactive login
         var principal = oidcUtils.ValidateIdentityToken(authority, false);
         return(userName.Equals(principal.Identity.Name));
     }
     return(false);
 }
Ejemplo n.º 9
0
        /// <summary>
        /// Checks to see if the user is valid
        /// </summary>
        /// <param name="principalName"></param>
        /// <returns></returns>
        public bool IsValidPrincipalName(string principalName)
        {
            var peUtils = new PEUtilities(m_oidcAuthority, m_peAppUrl, m_peAppID, m_peAppKey, m_peIntegrationSecret);

            return(peUtils.ValidatePrincipal(principalName));
        }