Пример #1
0
        private async Task <JsonResult> SaveAccountSwitchTokenAndGetTargetUrl(int?targetTenantId, long targetUserId)
        {
            //Create a cache item
            var cacheItem = new SwitchToLinkedAccountCacheItem(
                targetTenantId,
                targetUserId,
                AbpSession.ImpersonatorTenantId,
                AbpSession.ImpersonatorUserId
                );

            //Create a random token and save to the cache
            var tokenId = Guid.NewGuid().ToString();
            await _cacheManager
            .GetSwitchToLinkedAccountCache()
            .SetAsync(tokenId, cacheItem, TimeSpan.FromMinutes(1));

            //Find tenancy name
            string tenancyName = null;

            if (targetTenantId.HasValue)
            {
                tenancyName = (await _tenantManager.GetByIdAsync(targetTenantId.Value)).TenancyName;
            }

            //Create target URL
            var targetUrl = _webUrlService.GetSiteRootAddress(tenancyName) + "Account/SwitchToLinkedAccountSignIn?tokenId=" + tokenId;

            return(Json(new MvcAjaxResponse {
                TargetUrl = targetUrl
            }));
        }
Пример #2
0
        public async Task <string> GetAccountSwitchToken(long targetUserId, int?targetTenantId)
        {
            //Create a cache item
            var cacheItem = new SwitchToLinkedAccountCacheItem(
                targetTenantId,
                targetUserId,
                AbpSession.ImpersonatorTenantId,
                AbpSession.ImpersonatorUserId
                );

            //Create a random token and save to the cache
            var token = Guid.NewGuid().ToString();

            await _cacheManager
            .GetSwitchToLinkedAccountCache()
            .SetAsync(token, cacheItem, TimeSpan.FromMinutes(1));

            return(token);
        }