コード例 #1
0
        private async Task <CredentialViewModel> GenerateApiKeyInternal(string description, ICollection <Scope> scopes, TimeSpan?expiration)
        {
            var user = GetCurrentUser();

            // Create a new API Key credential, and save to the database
            var newCredential = _credentialBuilder.CreateApiKey(expiration, out string plaintextApiKey);

            newCredential.Description = description;
            newCredential.Scopes      = scopes;

            await _authService.AddCredential(user, newCredential);

            var credentialViewModel = _authService.DescribeCredential(newCredential);

            credentialViewModel.Value = plaintextApiKey;

            return(credentialViewModel);
        }
コード例 #2
0
        public virtual async Task <ActionResult> GenerateApiKey(int?expirationInDays)
        {
            // Get the user
            var user = GetCurrentUser();

            // Set expiration
            var expiration = TimeSpan.Zero;

            if (_config.ExpirationInDaysForApiKeyV1 > 0)
            {
                expiration = TimeSpan.FromDays(_config.ExpirationInDaysForApiKeyV1);

                if (expirationInDays.HasValue && expirationInDays.Value > 0)
                {
                    expiration = TimeSpan.FromDays(Math.Min(expirationInDays.Value, _config.ExpirationInDaysForApiKeyV1));
                }
            }

            // Add/Replace the API Key credential, and save to the database
            TempData["Message"] = Strings.ApiKeyReset;
            await _authService.ReplaceCredential(user, _credentialBuilder.CreateApiKey(expiration));

            return(RedirectToAction("Account"));
        }