Microsoft.R.Host.Broker.UserProfile.UserProfileManager.DeleteProfileAsync C# (CSharp) Method

DeleteProfileAsync() public method

public DeleteProfileAsync ( RUserProfileServiceRequest request, CancellationToken ct ) : Task
request Microsoft.R.Host.Protocol.RUserProfileServiceRequest
ct System.Threading.CancellationToken
return Task
        public Task<RUserProfileServiceResponse> DeleteProfileAsync(RUserProfileServiceRequest request, CancellationToken ct) {
            return ProfileWorkerAsync(NamedPipeServerStreamFactory.DeletorName, Resources.Error_ProfileDeletionFailedIO, request, ct);
        }

Usage Example

Beispiel #1
0
        public async Task <IActionResult> DeleteAsync()
        {
            RUserProfileServiceResponse result = null;

            using (IDisposable blocker = _sessionManager.BlockSessionsCreationForUser(User.Identity, true)) {
                var  username = new StringBuilder(NativeMethods.CREDUI_MAX_USERNAME_LENGTH + 1);
                var  domain   = new StringBuilder(NativeMethods.CREDUI_MAX_DOMAIN_LENGTH + 1);
                uint error    = NativeMethods.CredUIParseUserName(User.Identity.Name, username, username.Capacity, domain, domain.Capacity);
                if (error != 0)
                {
                    return(new ApiErrorResult(BrokerApiError.Win32Error, ErrorCodeConverter.MessageFromErrorCode((int)error)));
                }

#if DEBUG
                CancellationTokenSource cts = new CancellationTokenSource(TimeSpan.FromMinutes(10));
#else
                CancellationTokenSource cts = new CancellationTokenSource(TimeSpan.FromSeconds(10));
#endif

                string sid = ((WindowsIdentity)User.Identity).User.Value;
                result = await _userProfileManager.DeleteProfileAsync(new RUserProfileServiceRequest(username.ToString(), domain.ToString(), sid), cts.Token);
            }

            if (result.Error == 0)
            {
                return(Ok());
            }

            return(new ApiErrorResult(BrokerApiError.Win32Error, ErrorCodeConverter.MessageFromErrorCode((int)result.Error)));
        }