Пример #1
0
        /// <summary>
        /// Gets the sign in URL.
        /// </summary>
        /// <param name="returnUrl">The return url.</param>
        /// <param name="state">The state.</param>
        /// <returns>
        /// The sign in url.
        /// </returns>
        public Task <Uri> GetSignInUrlAsync(Uri returnUrl, string state)
        {
            if (returnUrl == null)
            {
                throw new ArgumentNullException(nameof(returnUrl));
            }

            if (state == null)
            {
                throw new ArgumentNullException(nameof(state));
            }

            if (CustomAccountProviderManager.ValidateReturnUrl(returnUrl))
            {
                var tenant = CustomAccountProviderManager.GetTenantUrlSegment(HttpContext.Current.Request);

                return(Task.FromResult(
                           new Uri(
                               string.Format(
                                   CultureInfo.InvariantCulture,
                                   string.Format(CultureInfo.InvariantCulture, CustomAccountProviderManagerFactory.CustomAccountProviderLogonUrl, tenant) + "?returnUrl={0}&state={1}",
                                   returnUrl.UrlEncode(),
                                   state.Base64ToBase64Url()))));
            }
            else
            {
                throw new ArgumentOutOfRangeException(nameof(returnUrl), "Invalid returnUrl");
            }
        }
Пример #2
0
        /// <summary>
        /// Gets the sign out URL.
        /// </summary>
        /// <param name="name">The name claim of the user.</param>
        /// <param name="privatePersonalIdentifier">The private personal identifier of the user.</param>
        /// <param name="returnUrl">The return URL.</param>
        /// <returns>
        /// The sign out url.
        /// </returns>
        public Uri GetSignOutUrl(Claim name, Claim privatePersonalIdentifier, Uri returnUrl)
        {
            var tenant = CustomAccountProviderManager.GetTenantUrlSegment(HttpContext.Current.Request);

            return(new Uri(string.Format(CultureInfo.InvariantCulture, CustomAccountProviderManagerFactory.CustomAccountProviderLogOffUrl, tenant, returnUrl.UrlEncode())));
        }