コード例 #1
0
        public async Task <LabSettingsDTO> UnlinkDomain(TeamDTO team)
        {
            var res = new LabSettingsDTO();

            try
            {
                //detach domain from tenant
                var control = await AADLinkControl.CreateAsync(team.TeamAssignment.AssignedTenantId, new HttpContextWrapper(HttpContext.Current));

                var adalResponse = await control.DeleteDomain(team.TeamAssignment.DomainName);

                if (adalResponse.Message == "ObjectInUse")
                {
                    var references = await control.GetDomainReferences(team.TeamAssignment.DomainName);

                    res.Object = references.Object;
                }

                res.ResponseMessage += string.Format("Domain operation {0}, message: {1}", ((adalResponse.Successful) ? "successful" : "failed"), adalResponse.Message);
                res.Settings         = await LabRepo.GetLabAndSettings(team.Lab.Id);

                if (adalResponse.Message != "ObjectInUse" && adalResponse.Successful)
                {
                    var res2 = await ResetTxtAssignment(team);

                    res.Settings = res2.Settings;
                }
            }
            catch (Exception ex)
            {
                res.ResponseMessage = "ERROR: " + ex.Message;
            }
            return(res);
        }
コード例 #2
0
        public async Task <LabSettingsDTO> CheckDomainAssignment(TeamDTO team)
        {
            var res = new LabSettingsDTO();

            try
            {
                var control = await AADLinkControl.CreateAsync(team.TeamAssignment.AssignedTenantId, new HttpContextWrapper(HttpContext.Current));

                var adalResponse = await control.GetDomain(team.TeamAssignment.DomainName);

                if (adalResponse.Successful)
                {
                    res.ResponseMessage = adalResponse.ResponseContent;
                }
                else
                {
                    res.ResponseMessage += string.Format("Domain operation {0}, message: {1}", ((adalResponse.Successful) ? "successful" : "failed"), adalResponse.Message);
                }
            }
            catch (Exception ex)
            {
                res.ResponseMessage = "ERROR: " + ex.Message;
            }
            return(res);
        }
コード例 #3
0
        public async Task <AdalResponse <Domain> > CheckDomainValidation()
        {
            var labCode  = User.Identity.GetClaim(CustomClaimTypes.LabCode);
            var teamCode = User.Identity.GetClaim(CustomClaimTypes.TeamCode);

            var team = await LabRepo.GetDomAssignment(labCode, teamCode);

            var tenantId = AdalLib.GetUserTenantId(User.Identity);
            var hctx     = new HttpContextWrapper(HttpContext.Current);

            var control = await AADLinkControl.CreateAsync(tenantId, hctx);

            return(await control.GetDomain(team.TeamAssignment.DomainName));
        }
コード例 #4
0
        public async Task <LabSettingsDTO> DeleteDirectoryObject(DelObjectDTO team)
        {
            var res = new LabSettingsDTO();

            try
            {
                //detach domain from tenant
                var control = await AADLinkControl.CreateAsync(team.TeamAssignment.AssignedTenantId, new HttpContextWrapper(HttpContext.Current));

                var adalResponse = await control.DeleteObject(team.DelObjId);

                res.ResponseMessage += string.Format("Delete operation {0}, message: {1}", ((adalResponse.Successful) ? "successful" : "failed"), adalResponse.Message);
                res.Settings         = await LabRepo.GetLabAndSettings(team.Lab.Id);
            }
            catch (Exception ex)
            {
                res.ResponseMessage = "ERROR: " + ex.Message;
            }
            return(res);
        }