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); }
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); } } }
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"); }
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"); }
public void FindUser_Returns_Data() { var peutils = new PEUtilities(authUrl, appUrl, appID, appKey, integrationSecret); var hasUser = peutils.IsUserValid("*****@*****.**"); Assert.IsTrue(hasUser, "No User Returned"); }
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"); }
/// <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)); }
/// <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); }
/// <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)); }