Class User
Operations for reading, replacing, or deleting a specific existing user by id and query a user's permissions.
public abstract class User
- Inheritance
-
User
- Inherited Members
- Extension Methods
Constructors
User()
protected User()
Properties
Id
The Id of the Cosmos user
public abstract string Id { get; }
Property Value
Methods
CreatePermissionAsync(PermissionProperties, int?, RequestOptions, CancellationToken)
Creates a permission as an asynchronous operation in the Azure Cosmos service.
public abstract Task<PermissionResponse> CreatePermissionAsync(PermissionProperties permissionProperties, int? tokenExpiryInSeconds = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default)
Parameters
permissionProperties
PermissionPropertiesThe PermissionProperties object.
tokenExpiryInSeconds
int?(Optional) The expiry time for resource token in seconds. This value can range from 10 seconds, to 24 hours (or 86,400 seconds). The default value for this is 1 hour (or 3,600 seconds). This does not change the default value for future tokens.
requestOptions
RequestOptions(Optional) The options for the permission request.
cancellationToken
CancellationToken(Optional) CancellationToken representing request cancellation.
Returns
- Task<PermissionResponse>
A Task containing a PermissionResponse which wraps a PermissionProperties containing the read resource record.
Examples
PermissionProperties permissionProperties = new PermissionProperties("permissionId", PermissionMode.All, database.GetContainer("containerId"), new PartitionKey("tenantId"))";
PermissionResponse response = await this.cosmosDatabase.GetUser("userId").CreatePermissionAsync(permissionProperties, tokenExpiryInSeconds: 9000);
DeleteAsync(RequestOptions, CancellationToken)
Delete a UserProperties from the Azure Cosmos DB service as an asynchronous operation.
public abstract Task<UserResponse> DeleteAsync(RequestOptions requestOptions = null, CancellationToken cancellationToken = default)
Parameters
requestOptions
RequestOptions(Optional) The options for the user request.
cancellationToken
CancellationToken(Optional) CancellationToken representing request cancellation.
Returns
- Task<UserResponse>
A Task containing a UserResponse which will contain information about the request issued.
Examples
User user = this.database.GetUser("userId");
UserResponse response = await user.DeleteUserAsync();
GetPermission(string)
Returns a reference to a permission object.
public abstract Permission GetPermission(string id)
Parameters
id
stringThe cosmos permission id.
Returns
- Permission
Cosmos permission reference
Examples
User user = this.cosmosClient.GetDatabase("myDatabaseId").GetUser("userId");
PermissionResponse response = await user.GetPermssion("permissionId");
Remarks
Returns a Permission reference. Reference doesn't guarantee existence. Please ensure permssion already exists or is created through a create operation.
GetPermissionQueryIterator<T>(QueryDefinition, string, QueryRequestOptions)
This method creates a query for permissions under a database using a SQL statement with parameterized values. It returns a FeedIterator. For more information on preparing SQL statements with parameterized values, please see QueryDefinition overload.
public abstract FeedIterator<T> GetPermissionQueryIterator<T>(QueryDefinition queryDefinition, string continuationToken = null, QueryRequestOptions requestOptions = null)
Parameters
queryDefinition
QueryDefinitionThe cosmos SQL query definition.
continuationToken
string(Optional) The continuation token in the Azure Cosmos DB service.
requestOptions
QueryRequestOptions(Optional) The options for the user query request QueryRequestOptions
Returns
- FeedIterator<T>
An iterator to go through the permissions
Type Parameters
T
Examples
This create the type feed iterator for permissions with queryDefinition as input.
QueryDefinition queryDefinition = new QueryDefinition("SELECT * FROM c where c.status like @status")
.WithParameter("@status", "start%");
using (FeedIterator<PermissionProperties> resultSet = this.user.GetPermissionQueryIterator<PermissionProperties>(queryDefinition))
{
while (feedIterator.HasMoreResults)
{
foreach (PermissionProperties properties in await feedIterator.ReadNextAsync())
{
Console.WriteLine(properties.Id);
}
}
}
Remarks
Reading permissions will generate a new ResourceTokens. Prior ResourceTokens will still be valid.
GetPermissionQueryIterator<T>(string, string, QueryRequestOptions)
This method creates a query for permission under a user using a SQL statement. It returns a FeedIterator.
public abstract FeedIterator<T> GetPermissionQueryIterator<T>(string queryText = null, string continuationToken = null, QueryRequestOptions requestOptions = null)
Parameters
queryText
stringThe cosmos SQL query text.
continuationToken
string(Optional) The continuation token in the Azure Cosmos DB service.
requestOptions
QueryRequestOptions(Optional) The options for the user query request QueryRequestOptions
Returns
- FeedIterator<T>
An iterator to go through the permission
Type Parameters
T
Examples
- This create the type feed iterator for permission with queryText as input,
string queryText = "SELECT * FROM c where c.status like 'start%'";
using (FeedIterator<PermissionProperties> feedIterator = this.users.GetPermissionQueryIterator<PermissionProperties>(queryText))
{
while (feedIterator.HasMoreResults)
{
FeedResponse<PermissionProperties> response = await feedIterator.ReadNextAsync();
foreach (var permission in response)
{
Console.WriteLine(permission);
}
}
}
- This create the type feed iterator for permissions without queryText, retrieving all permissions.
using (FeedIterator<PermissionProperties> feedIterator = this.user.GetPermissionQueryIterator<PermissionProperties>())
{
while (feedIterator.HasMoreResults)
{
FeedResponse<PermissionProperties> response = await feedIterator.ReadNextAsync();
foreach (var permission in response)
{
Console.WriteLine(permission);
}
}
}
ReadAsync(RequestOptions, CancellationToken)
Reads a UserProperties from the Azure Cosmos service as an asynchronous operation.
public abstract Task<UserResponse> ReadAsync(RequestOptions requestOptions = null, CancellationToken cancellationToken = default)
Parameters
requestOptions
RequestOptions(Optional) The options for the user request.
cancellationToken
CancellationToken(Optional) CancellationToken representing request cancellation.
Returns
- Task<UserResponse>
A Task containing a UserResponse which wraps a UserProperties containing the read resource record.
Examples
User user = this.database.GetUser("userId");
UserProperties userProperties = await user.ReadUserAsync();
ReplaceAsync(UserProperties, RequestOptions, CancellationToken)
Replace a UserProperties from the Azure Cosmos service as an asynchronous operation.
public abstract Task<UserResponse> ReplaceAsync(UserProperties userProperties, RequestOptions requestOptions = null, CancellationToken cancellationToken = default)
Parameters
userProperties
UserPropertiesThe UserProperties object.
requestOptions
RequestOptions(Optional) The options for the user request.
cancellationToken
CancellationToken(Optional) CancellationToken representing request cancellation.
Returns
- Task<UserResponse>
A Task containing a UserResponse which wraps a UserProperties containing the replace resource record.
Examples
UserProperties userProperties = userReadResponse;
userProperties.Id = "newuser";
UserResponse response = await user.ReplaceUserAsync(userProperties);
UserProperties replacedProperties = response;
UpsertPermissionAsync(PermissionProperties, int?, RequestOptions, CancellationToken)
Upsert a permission as an asynchronous operation in the Azure Cosmos service.
public abstract Task<PermissionResponse> UpsertPermissionAsync(PermissionProperties permissionProperties, int? tokenExpiryInSeconds = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default)
Parameters
permissionProperties
PermissionPropertiesThe PermissionProperties object.
tokenExpiryInSeconds
int?(Optional) The expiry time for resource token in seconds. This value can range from 10 seconds, to 24 hours (or 86,400 seconds). The default value for this is 1 hour (or 3,600 seconds). This does not change the default value for future tokens.
requestOptions
RequestOptions(Optional) The options for the permission request.
cancellationToken
CancellationToken(Optional) CancellationToken representing request cancellation.
Returns
- Task<PermissionResponse>
A Task containing a PermissionResponse which wraps a PermissionProperties containing the read resource record.
Examples
PermissionProperties permissionProperties = new PermissionProperties("permissionId", PermissionMode.All, database.GetContainer("containerId"), new PartitionKey("tenantId"))";
PermissionResponse response = await this.cosmosDatabase.GetUser("userId").UpsertPermissionAsync(permissionProperties, tokenExpiryInSeconds: 9000);