示例#1
0
        private async Task SignInAsync(AccessTokenDetails accessToken, CharacterDetails character)
        {
            if (accessToken == null)
            {
                throw new ArgumentNullException(nameof(accessToken));
            }
            if (character == null)
            {
                throw new ArgumentNullException(nameof(character));
            }

            var claims = new List <Claim> {
                new Claim(ClaimTypes.NameIdentifier, character.CharacterId.ToString()),
                new Claim(ClaimTypes.Name, character.CharacterName),
                new Claim("AccessToken", accessToken.AccessToken),
                new Claim("RefreshToken", accessToken.RefreshToken ?? ""),
                new Claim("AccessTokenExpiry", accessToken.ExpiresUtc.ToString()),
                new Claim("Scopes", character.Scopes)
            };

            var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);

            await HttpContext.SignInAsync(
                CookieAuthenticationDefaults.AuthenticationScheme,
                new ClaimsPrincipal(claimsIdentity),
                new AuthenticationProperties { IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddHours(24) });
        }
        /// <summary>
        /// Stores the App Store OAuth token for the specified user.
        /// </summary>
        /// <param name="userId">The user ID.</param>
        /// <param name="token">The token.</param>
        /// <param name="cancellationToken">The cancellation token for the request.</param>
        /// <returns>
        /// A task that will store the token.
        /// </returns>
        public Task SetTokenDetails(string userId, AccessTokenDetails token, CancellationToken cancellationToken)
        {
            if (!String.IsNullOrWhiteSpace(userId) && token != null)
            {
                Tokens[userId] = token;
            }

            return(Task.FromResult(0));
        }
示例#3
0
        public async Task <IActionResult> Callback()
        {
            Emsservice = new scopesservice(Path.Combine(_hostingEnvironment.WebRootPath, @"res\emsscopes.ems"));
            Emsservice.GetScopes();
            EmsIniservice = new iniservice(Path.Combine(_hostingEnvironment.WebRootPath, @"res\cfg.xml"));
            EmsApi        = new EVEStandardAPI("EMS", DataSource.Tranquility, new TimeSpan(0, 5, 0), EmsIniservice.CallbackUrl, EmsIniservice.ClientId, EmsIniservice.SecretKey);
            Model         = EmsApi.SSO.AuthorizeToEVEURI(Emsservice.scopes, "ems");

            Model.AuthorizationCode = Request.Query["code"];
            Model.ReturnedState     = Request.Query["state"];
            //Model.ExpectedState= "ems";
            AccessTokenDetails token = await EmsApi.SSO.VerifyAuthorizationAsync(Model);

            ViewData["access_token"]  = token.AccessToken;
            ViewData["expires_in"]    = token.ExpiresIn;
            ViewData["refresh_token"] = token.RefreshToken;
            ViewData["expires"]       = token.Expires;
            CharacterDetails character = await EmsApi.SSO.GetCharacterDetailsAsync(token.AccessToken);

            ViewData["CharacterID"]        = character.CharacterID;
            ViewData["CharacterName"]      = character.CharacterName;
            ViewData["ExpiresOn"]          = character.ExpiresOn;
            ViewData["Scopes"]             = character.Scopes;
            ViewData["TokenType"]          = character.TokenType;
            ViewData["CharacterOwnerHash"] = character.CharacterOwnerHash;

            AuthDTO authDTOems = new AuthDTO
            {
                AccessToken = token,
                Character   = character
            };
            List <CharacterMining> mininglist = new List <CharacterMining>();
            long pages = 0;

            try
            {
                (mininglist, pages) = await EmsApi.Industry.CharacterMiningLedgerV1Async(authDTOems, 1);
            }
            catch (Exception e)
            {
                ViewData["emessage"] = e.Message.ToString();;
                ViewData["error"]    = e.ToString();;
                ViewData["data"]     = e.Data.ToString();
                return(View());
            }
            mininglist.ToArray();
            string image  = "https://imageserver.eveonline.com/Character/" + character.CharacterID + "_512.jpg";
            Uri    imguri = new Uri(image);

            ViewData["image"] = imguri;
            return(View(mininglist));
        }
        public void CanGetAccessTokenDetails()
        {
            var request = new GetAccessTokenDetailsRequest();
            GetAccessTokenDetailsResponse response = Client.GetUserPermissions(request);

            Assert.NotNull(response);

            AccessTokenDetails accessTokenDetails = response.Response;

            Assert.NotNull(accessTokenDetails);
            Assert.NotNull(accessTokenDetails.AccessToken);
            Assert.NotNull(accessTokenDetails.UserResourceOwner);
        }
        /// <summary>
        /// Gets the App Store OAuth token for the specified user.
        /// </summary>
        /// <param name="userId">The user ID.</param>
        /// <param name="cancellationToken">The cancellation token for the request.</param>
        /// <returns>
        /// A task that will either return the token, or return <see langword="null"/> if no token was found.
        /// </returns>
        public async Task <AccessTokenDetails> GetTokenDetails(string userId, CancellationToken cancellationToken)
        {
            AccessTokenDetails result = null;

            if (!String.IsNullOrWhiteSpace(userId))
            {
                Tokens.TryGetValue(userId, out result);
            }

            if (result != null && result.UtcAccessTokenExpiryTime.HasValue && result.UtcAccessTokenExpiryTime.Value >= DateTime.UtcNow)
            {
                await result.Refresh(BackchannelClient, new Uri(ConfigurationManager.AppSettings["appStore:baseUrl"]), ConfigurationManager.AppSettings["appStore:clientId"], ConfigurationManager.AppSettings["appStore:clientSecret"], cancellationToken).ConfigureAwait(false);
            }

            return(result);
        }
示例#6
0
        public static async Task SignInAsync(this HttpContext context, AccessTokenDetails accessToken, CharacterDetails character)
        {
            var claims = new List <Claim>
            {
                new Claim(ClaimTypes.NameIdentifier, character.CharacterId.ToString()),
                new Claim(ClaimTypes.Name, character.CharacterName),
                new Claim(AppClaimTypes.AccessToken, accessToken.AccessToken),
                new Claim(AppClaimTypes.RefreshToken, accessToken.RefreshToken ?? ""),
                new Claim(AppClaimTypes.AccessTokenExpiry, accessToken.ExpiresUtc.ToString()),
                new Claim(AppClaimTypes.Scopes, character.Scopes)
            };

            var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);

            await context.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity), new AuthenticationProperties
            {
                IsPersistent = true,
                ExpiresUtc   = DateTime.UtcNow.AddHours(24)
            });
        }
示例#7
0
        public static SuperEventDetails CreateObject(PayLoad payLoad)
        {
            SuperEventDetails superEventDetail = new SuperEventDetails();

            foreach (Event _event in payLoad.Data)
            {
                if (_event.AdditionalDetails == null)
                {
                    _event.AdditionalDetails = new AdditionalDetails();
                }

                List <EventDetailHeader> gett = new List <EventDetailHeader>();

                var eventDetailHeader = new EventDetailHeader()
                {
                    EventID            = _event.EventID,
                    NextStreamPosition = payLoad.NextStreamPosition,
                    EventTimeStamp     = _event.EventTimestamp
                };

                superEventDetail.EventDetailHeaders.Add(eventDetailHeader);

                switch (_event.ObjectType)
                {
                case "SHEET":
                    var sheetDetail = new SheetDetails()
                    {
                        EventID                = _event.EventID,
                        ObjectID               = _event.ObjectID,
                        Action                 = _event.Action,
                        SourceObjectID         = _event.AdditionalDetails.SourceObjectID,
                        SourceGlobaltemplateID = _event.AdditionalDetails.SourceGlobalTemplateID,
                        SourcetemplateID       = _event.AdditionalDetails.SourceTemplateID,
                        Source                 = _event.AdditionalDetails.Source,
                        SourceType             = _event.AdditionalDetails.SourceType,
                        SheetName              = _event.AdditionalDetails.SheetName,
                        NewName                = _event.AdditionalDetails.NewName,
                        OldName                = _event.AdditionalDetails.OldName,
                        AccessLevel            = _event.AdditionalDetails.AccessLevel,
                        UserIDInitiator        = _event.AdditionalDetails.UserID,

                        GroupID               = _event.AdditionalDetails.GroupID,
                        WorkSpaceID           = _event.AdditionalDetails.WorkSpaceID,
                        OldUserID             = _event.AdditionalDetails.OldUserID,
                        OldAccessLevel        = _event.AdditionalDetails.OldAccessLevel,
                        NewUserID             = _event.AdditionalDetails.NewUserID,
                        NewAccessLevel        = _event.AdditionalDetails.NewAccessLevel,
                        RecipientEmail        = _event.AdditionalDetails.RecipientEmail,
                        RecipientGroupID      = _event.AdditionalDetails.RecipientGroupID,
                        FormatType            = _event.AdditionalDetails.FormatType,
                        RowCount              = _event.AdditionalDetails.RowCount,
                        IncludeAttachments    = _event.AdditionalDetails.IncludeAttachments,
                        IncludeDiscussions    = _event.AdditionalDetails.IncludeDiscussions,
                        SourceSheetID         = _event.AdditionalDetails.SourceSheetID,
                        DestinationSheetID    = _event.AdditionalDetails.DestinationSheetID,
                        RowsMoved             = _event.AdditionalDetails.RowsMoved,
                        RowsCopied            = _event.AdditionalDetails.RowsCopied,
                        CelllinkSourceSheetID = _event.AdditionalDetails.CelllinkSourceSheetID,
                        NewParentContainerID  = _event.AdditionalDetails.NewParentContainerID,
                        ParentContainerID     = _event.AdditionalDetails.ParentContainerID,
                        FolderName            = _event.AdditionalDetails.FolderName,
                        RequestUserID         = _event.AdditionalDetails.RequestUserID,
                        SendCompletionEmail   = _event.AdditionalDetails.SendCompletionEmail,
                        UserIDImpacted        = _event.AdditionalDetails.UserIDImpacted,
                        EventTimestamp        = _event.AdditionalDetails.EventTimeStamp
                    };
                    superEventDetail.SheetDetails.Add(sheetDetail);
                    break;

                case "REPORT":
                    var reportDetail = new ReportDetails()
                    {
                        EventID  = _event.EventID,
                        ObjectID = _event.ObjectID,
                        Action   = _event.Action,

                        ReportName             = _event.AdditionalDetails.ReportName,
                        SourceObjectID         = _event.AdditionalDetails.SourceObjectID,
                        SourceGlobaltemplateID = _event.AdditionalDetails.SourceGlobalTemplateID,
                        SourceType             = _event.AdditionalDetails.SourceType,
                        NewName              = _event.AdditionalDetails.NewName,
                        OldName              = _event.AdditionalDetails.OldName,
                        AccessLevel          = _event.AdditionalDetails.AccessLevel,
                        UserID               = _event.AdditionalDetails.UserID,
                        GroupID              = _event.AdditionalDetails.GroupID,
                        WorkSpaceID          = _event.AdditionalDetails.WorkSpaceID,
                        OldUserID            = _event.AdditionalDetails.OldUserID,
                        OldAccessLevel       = _event.AdditionalDetails.OldAccessLevel,
                        NewUserID            = _event.AdditionalDetails.NewUserID,
                        NewAccessLevel       = _event.AdditionalDetails.NewAccessLevel,
                        NewParentContainerID = _event.AdditionalDetails.NewParentContainerID,
                        ParentContainerID    = _event.AdditionalDetails.ParentContainerID,
                        FolderName           = _event.AdditionalDetails.FolderName,
                        RecipientEmail       = _event.AdditionalDetails.RecipientEmail,
                        RecipientGroupID     = _event.AdditionalDetails.RecipientGroupID,
                        FormatType           = _event.AdditionalDetails.FormatType,
                        UserIDImpacted       = _event.AdditionalDetails.UserIDImpacted,
                        UserIDInitiator      = _event.UserID,
                        EventTimestamp       = _event.EventTimestamp,
                        RequestUserID        = _event.RequestUserID,
                        Source               = _event.Source
                    };

                    superEventDetail.ReportDetails.Add(reportDetail);
                    break;

                case "ATTACHMENT":
                    var attachmentDetail = new AttachmentDetails()
                    {
                        EventID               = _event.EventID,
                        ObjectID              = _event.ObjectID,
                        Action                = _event.Action,
                        SheetID               = _event.AdditionalDetails.SheetID,
                        WorkSpaceID           = _event.AdditionalDetails.WorkSpaceID,
                        AttachmentName        = _event.AdditionalDetails.AttachmentName,
                        MultifileDownloadname = _event.AdditionalDetails.MultifileDownloadName,
                        RecipientEmail        = _event.AdditionalDetails.RecipientEmail,
                        RecipientGroupID      = _event.AdditionalDetails.RecipientGroupID,
                        UserIDInitiator       = _event.UserID,
                        EventTimestamp        = _event.EventTimestamp,
                        RequestUserID         = _event.RequestUserID,
                        Source                = _event.Source,
                    };
                    superEventDetail.AttachmentDetails.Add(attachmentDetail);
                    break;

                case "USER":
                    var userDetail = new UserDetails()
                    {
                        EventID         = _event.EventID,
                        ObjectID        = _event.ObjectID,
                        Action          = _event.Action,
                        UserTypes       = _event.AdditionalDetails.UserTypes,
                        EmailAddress    = _event.AdditionalDetails.EmailAddress,
                        DeclineReason   = _event.AdditionalDetails.DeclineReason,
                        OldownerUserID  = _event.AdditionalDetails.OldOwnerUserID,
                        NewownerUserID  = _event.AdditionalDetails.NewOwnerUserID,
                        UserIDInitiator = _event.UserID,
                        EventTimestamp  = _event.EventTimestamp,
                        RequestUserID   = _event.RequestUserID,
                        Source          = _event.Source,
                    };
                    superEventDetail.UserDetails.Add(userDetail);
                    break;

                case "DISCUSSION":
                    var discussionDetail = new DiscussionDetails()
                    {
                        EventID            = _event.EventID,
                        ObjectID           = _event.ObjectID,
                        Action             = _event.Action,
                        SheetRowID         = _event.AdditionalDetails.SheetRowID,
                        SheetID            = _event.AdditionalDetails.SheetID,
                        WorkSpaceID        = _event.AdditionalDetails.WorkSpaceID,
                        RecipientEmail     = _event.AdditionalDetails.RecipientEmail,
                        RecipientGroupID   = _event.AdditionalDetails.RecipientGroupID,
                        IncludeAttachments = _event.AdditionalDetails.IncludeAttachments,
                        UserIDInitiator    = _event.UserID,
                        EventTimestamp     = _event.EventTimestamp,
                        RequestUserID      = _event.RequestUserID,
                        Source             = _event.Source,
                    };
                    superEventDetail.DiscussionDetails.Add(discussionDetail);
                    break;

                case "DASHBOARD":
                    var dashboardDetail = new DashboardDetails()
                    {
                        EventID                = _event.EventID,
                        ObjectID               = _event.ObjectID,
                        Action                 = _event.Action,
                        DashboardName          = _event.AdditionalDetails.DashboardName,
                        SourceGlobalTemplateID = _event.AdditionalDetails.SourceGlobalTemplateID,
                        SourceObjectID         = _event.AdditionalDetails.SourceObjectID,
                        SourceType             = _event.AdditionalDetails.SourceType,
                        AccessibleBy           = _event.AdditionalDetails.AccessibleBy,
                        PublishType            = _event.AdditionalDetails.PublishType,
                        PublishFormat          = _event.AdditionalDetails.PublishFormat,
                        AccessLevel            = _event.AdditionalDetails.AccessLevel,
                        UserID                 = _event.AdditionalDetails.UserID,
                        GroupID                = _event.AdditionalDetails.GroupID,
                        WorkspaceID            = _event.AdditionalDetails.WorkSpaceID,
                        OldUserID              = _event.AdditionalDetails.OldUserID,
                        OldAccessLevel         = _event.AdditionalDetails.OldAccessLevel,
                        NewUserID              = _event.AdditionalDetails.NewUserID,
                        NewAccessLevel         = _event.AdditionalDetails.NewAccessLevel,
                        NewparentContainerID   = _event.AdditionalDetails.NewParentContainerID,
                        ParentContainerID      = _event.AdditionalDetails.ParentContainerID,
                        FolderName             = _event.AdditionalDetails.FolderName,
                        OldName                = _event.AdditionalDetails.OldName,
                        NewName                = _event.AdditionalDetails.NewName,
                        UserIDInitiator        = _event.UserID,
                        EventTimestamp         = _event.EventTimestamp,
                        RequestUserID          = _event.RequestUserID,
                        Source                 = _event.Source,
                    };
                    superEventDetail.DashboardDetails.Add(dashboardDetail);
                    break;

                case "FOLDER":
                    var folderDetail = new FolderDetails()
                    {
                        EventID             = _event.EventID,
                        ObjectID            = _event.ObjectID,
                        Action              = _event.Action,
                        FolderName          = _event.AdditionalDetails.FolderName,
                        SourceFolderID      = _event.AdditionalDetails.SourceFolderID,
                        OldName             = _event.AdditionalDetails.OldName,
                        NewName             = _event.AdditionalDetails.NewName,
                        SendCompletionEmail = _event.AdditionalDetails.SendCompletionEmail,
                        IncludeAttachments  = _event.AdditionalDetails.IncludeAttachments,
                        FormatType          = _event.AdditionalDetails.FormatType,
                        UserIDInitiator     = _event.UserID,
                        EventTimestamp      = _event.EventTimestamp,
                        RequestUserID       = _event.RequestUserID,
                        Source              = _event.Source,
                    };
                    superEventDetail.FolderDetails.Add(folderDetail);
                    break;

                case "FORM":
                    var formDetail = new FormDetails()
                    {
                        EventID         = _event.EventID,
                        ObjectID        = _event.ObjectID,
                        Action          = _event.Action,
                        FormName        = _event.AdditionalDetails.FolderName,
                        SheetID         = _event.AdditionalDetails.SheetID,
                        UserIDInitiator = _event.UserID,
                        EventTimestamp  = _event.EventTimestamp,
                        RequestUserID   = _event.RequestUserID,
                        Source          = _event.Source,
                    };
                    superEventDetail.FormDetails.Add(formDetail);
                    break;

                case "UPDATE REQUEST":
                    var updateRequestDetail = new UpdateRequestDetails()
                    {
                        EventID            = _event.EventID,
                        ObjectID           = _event.ObjectID,
                        Action             = _event.Action,
                        SheetID            = _event.AdditionalDetails.SheetID,
                        RowCounts          = _event.AdditionalDetails.RowCount.ToString(),
                        IncludeAttachments = _event.AdditionalDetails.IncludeAttachments,
                        IncludeDiscussions = _event.AdditionalDetails.IncludeDiscussions,
                        UserIDInitiator    = _event.UserID,
                        EventTimestamp     = _event.EventTimestamp,
                        RequestUserID      = _event.RequestUserID,
                        Source             = _event.Source,
                    };
                    superEventDetail.UpdateRequestDetails.Add(updateRequestDetail);
                    break;

                case "WORKSPACE":
                    var workspaceDetail = new WorkSpaceDetails()
                    {
                        EventID             = _event.EventID,
                        ObjectID            = _event.ObjectID,
                        Action              = _event.Action,
                        OldName             = _event.AdditionalDetails.OldName,
                        NewName             = _event.AdditionalDetails.NewName,
                        AccessLevel         = _event.AdditionalDetails.AccessLevel,
                        UserID              = _event.AdditionalDetails.UserID,
                        GroupID             = _event.AdditionalDetails.GroupID,
                        IncludeAttachments  = _event.AdditionalDetails.IncludeAttachments,
                        SendCompletionEmail = _event.AdditionalDetails.SendCompletionEmail,
                        FormatType          = _event.AdditionalDetails.FormatType,
                        UserIDInitiator     = _event.UserID,
                        EventTimestamp      = _event.EventTimestamp,
                        RequestUserID       = _event.RequestUserID,
                        Source              = _event.Source,
                    };
                    superEventDetail.WorkSpaceDetails.Add(workspaceDetail);
                    break;

                case "ACCESSTOKEN":
                    var accessTokenDetails = new AccessTokenDetails()
                    {
                        EventID                  = _event.EventID,
                        ObjectID                 = _event.ObjectID,
                        Action                   = _event.Action,
                        TokenName                = _event.AdditionalDetails.TokenName,
                        TokenDisplayValue        = _event.AdditionalDetails.TokenDisplayValue,
                        TokenExpirationTimestamp = _event.AdditionalDetails.TokenExpirationTimestamp,
                        AccessScopes             = _event.AdditionalDetails.AccessScopes,
                        AppClientID              = _event.AdditionalDetails.AppClientID,
                        AppName                  = _event.AdditionalDetails.AppName,
                        TokenUserID              = _event.AdditionalDetails.TokenUserID,
                        UserIDInitiator          = _event.UserID,
                        EventTimestamp           = _event.EventTimestamp,
                        RequestUserID            = _event.RequestUserID,
                        Source                   = _event.Source,
                    };
                    superEventDetail.AccessTokenDetails.Add(accessTokenDetails);
                    break;

                case "ACCOUNT":
                    var accountDetails = new AccountDetails()
                    {
                        EventID          = _event.EventID,
                        ObjectID         = _event.ObjectID,
                        Action           = _event.Action,
                        NewContactUserID = _event.AdditionalDetails.NewContactUserID,
                        OldContactUserID = _event.AdditionalDetails.OldContactUserID,
                        NewName          = _event.AdditionalDetails.NewName,
                        OldName          = _event.AdditionalDetails.OldName,
                        UserIDInitiator  = _event.UserID,
                        EventTimestamp   = _event.EventTimestamp,
                        RequestUserID    = _event.RequestUserID,
                        Source           = _event.Source,
                    };
                    superEventDetail.AccountDetails.Add(accountDetails);
                    break;

                case "GROUP":
                    var groupDetails = new GroupDetails()
                    {
                        EventID         = _event.EventID,
                        ObjectID        = _event.ObjectID,
                        Action          = _event.Action,
                        GroupName       = _event.AdditionalDetails.GroupName,
                        OldName         = _event.AdditionalDetails.OldName,
                        NewName         = _event.AdditionalDetails.NewName,
                        OldownerUserID  = _event.AdditionalDetails.OldOwnerUserID,
                        NewownerUserID  = _event.AdditionalDetails.NewOwnerUserID,
                        MemberUserID    = _event.AdditionalDetails.MemberUserID,
                        UserIDInitiator = _event.UserID,
                        EventTimestamp  = _event.EventTimestamp,
                        RequestUserID   = _event.RequestUserID,
                        Source          = _event.Source,
                    };
                    superEventDetail.GroupDetails.Add(groupDetails);
                    break;
                }
            }
            return(superEventDetail);
        }