public DirectoryInfo GetKeyStorageDirectoryForAzureWebSites() { if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("WEBSITE_INSTANCE_ID"))) { string environmentVariable = Environment.GetEnvironmentVariable("HOME"); if (!string.IsNullOrEmpty(environmentVariable)) { return(DefaultKeyStorageDirectories.GetKeyStorageDirectoryFromBaseAppDataPath(environmentVariable)); } } return((DirectoryInfo)null); }
private static DirectoryInfo GetKeyStorageDirectoryImpl() { var folderPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); var localAppData = Environment.GetEnvironmentVariable("LOCALAPPDATA"); var userProfile = Environment.GetEnvironmentVariable("USERPROFILE"); var home = Environment.GetEnvironmentVariable("HOME"); DirectoryInfo directoryInfo; if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && !string.IsNullOrEmpty(folderPath)) { directoryInfo = DefaultKeyStorageDirectories.GetKeyStorageDirectoryFromBaseAppDataPath(folderPath); } else if (localAppData != null) { directoryInfo = DefaultKeyStorageDirectories.GetKeyStorageDirectoryFromBaseAppDataPath(localAppData); } else if (userProfile != null) { directoryInfo = DefaultKeyStorageDirectories.GetKeyStorageDirectoryFromBaseAppDataPath(Path.Combine(userProfile, "AppData", "Local")); } else if (home != null) { directoryInfo = new DirectoryInfo(Path.Combine(home, ".aspnet", "DataProtection-Keys")); } else { if (string.IsNullOrEmpty(folderPath)) { return((DirectoryInfo)null); } directoryInfo = DefaultKeyStorageDirectories.GetKeyStorageDirectoryFromBaseAppDataPath(folderPath); } try { directoryInfo.Create(); return(directoryInfo); } catch { return((DirectoryInfo)null); } }