Esempio n. 1
0
 /// <summary>
 /// Gets the Shared Access Authorization Token for the User.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group.
 /// </param>
 /// <param name='serviceName'>
 /// The name of the API Management service.
 /// </param>
 /// <param name='userId'>
 /// User identifier. Must be unique in the current API Management service
 /// instance.
 /// </param>
 /// <param name='parameters'>
 /// Create Authorization Token parameters.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <UserTokenResult> GetSharedAccessTokenAsync(this IUserOperations operations, string resourceGroupName, string serviceName, string userId, UserTokenParameters parameters, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.GetSharedAccessTokenWithHttpMessagesAsync(resourceGroupName, serviceName, userId, parameters, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
Esempio n. 2
0
        public async Task CreateListUpdateDelete()
        {
            Environment.SetEnvironmentVariable("AZURE_TEST_MODE", "Playback");
            using (MockContext context = MockContext.Start(this.GetType().FullName))
            {
                var testBase = new ApiManagementTestBase(context);
                testBase.TryCreateApiManagementService();

                // list users
                var listUsersResponse = testBase.client.User.ListByService(
                    testBase.rgName,
                    testBase.serviceName,
                    null);

                Assert.NotNull(listUsersResponse);
                Assert.Single(listUsersResponse);

                // create user
                string userId = TestUtilities.GenerateName("userId");

                try
                {
                    string userEmail     = "*****@*****.**";
                    string userFirstName = TestUtilities.GenerateName("userFirstName");
                    string userLastName  = TestUtilities.GenerateName("userLastName");
                    string userPassword  = TestUtilities.GenerateName("userPassword");
                    string userNote      = TestUtilities.GenerateName("userNote");
                    string userSate      = UserState.Active;

                    var userCreateParameters = new UserCreateParameters
                    {
                        Email     = userEmail,
                        FirstName = userFirstName,
                        LastName  = userLastName,
                        Password  = userPassword,
                        Note      = userNote,
                        State     = userSate
                    };

                    var createUserResponse = testBase.client.User.CreateOrUpdate(
                        testBase.rgName,
                        testBase.serviceName,
                        userId,
                        userCreateParameters);

                    Assert.NotNull(createUserResponse);

                    // get the user to check it was added
                    var getUserResponse = await testBase.client.User.GetWithHttpMessagesAsync(
                        testBase.rgName,
                        testBase.serviceName,
                        userId);

                    Assert.NotNull(getUserResponse);
                    Assert.NotNull(getUserResponse.Headers.ETag);
                    Assert.Equal(userId, getUserResponse.Body.Name);
                    Assert.Equal(userEmail, getUserResponse.Body.Email);
                    Assert.Equal(userFirstName, getUserResponse.Body.FirstName);
                    Assert.Equal(userLastName, getUserResponse.Body.LastName);
                    Assert.Equal(userNote, getUserResponse.Body.Note);
                    Assert.Equal(userSate, getUserResponse.Body.State);

                    // list users
                    listUsersResponse = testBase.client.User.ListByService(
                        testBase.rgName,
                        testBase.serviceName,
                        new Microsoft.Rest.Azure.OData.ODataQuery <UserContract> {
                        Top = 1
                    });

                    Assert.NotNull(listUsersResponse);
                    Assert.NotNull(listUsersResponse.NextPageLink);
                    Assert.Single(listUsersResponse);

                    // generate SSO token URL
                    var genrateSsoResponse = testBase.client.User.GenerateSsoUrl(
                        testBase.rgName,
                        testBase.serviceName,
                        userId);

                    Assert.NotNull(genrateSsoResponse);
                    Assert.NotNull(genrateSsoResponse.Value);
                    Uri uri;
                    Assert.True(Uri.TryCreate(genrateSsoResponse.Value, UriKind.Absolute, out uri));

                    // generate token for user
                    var userTokenParameters  = new UserTokenParameters(KeyType.Primary, DateTime.UtcNow.AddDays(10));
                    var genrateTokenResponse = testBase.client.User.GetSharedAccessToken(
                        testBase.rgName,
                        testBase.serviceName,
                        userId,
                        userTokenParameters);

                    Assert.NotNull(genrateTokenResponse);
                    Assert.NotNull(genrateTokenResponse.Value);

                    // get the useridentity
                    var currentUserIdentity = await testBase.client.User.GetIdentityAsync(
                        testBase.rgName,
                        testBase.serviceName);

                    Assert.NotNull(currentUserIdentity);
                    Assert.NotNull(currentUserIdentity.Id);

                    // remove the user
                    testBase.client.User.Delete(
                        testBase.rgName,
                        testBase.serviceName,
                        userId,
                        getUserResponse.Headers.ETag,
                        deleteSubscriptions: true);

                    // get the deleted user to make sure it was deleted
                    try
                    {
                        testBase.client.User.Get(testBase.rgName, testBase.serviceName, userId);
                        throw new Exception("This code should not have been executed.");
                    }
                    catch (ErrorResponseException ex)
                    {
                        Assert.Equal(HttpStatusCode.NotFound, ex.Response.StatusCode);
                    }
                }
                finally
                {
                    testBase.client.User.Delete(
                        testBase.rgName,
                        testBase.serviceName,
                        userId,
                        "*",
                        deleteSubscriptions: true);
                }
            }
        }
Esempio n. 3
0
 /// <summary>
 /// Gets the Shared Access Authorization Token for the User.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group.
 /// </param>
 /// <param name='serviceName'>
 /// The name of the API Management service.
 /// </param>
 /// <param name='userId'>
 /// User identifier. Must be unique in the current API Management service
 /// instance.
 /// </param>
 /// <param name='parameters'>
 /// Create Authorization Token parameters.
 /// </param>
 public static UserTokenResult GetSharedAccessToken(this IUserOperations operations, string resourceGroupName, string serviceName, string userId, UserTokenParameters parameters)
 {
     return(operations.GetSharedAccessTokenAsync(resourceGroupName, serviceName, userId, parameters).GetAwaiter().GetResult());
 }