/// <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); } }
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); } } }
/// <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()); }