/// <summary> /// Validates permissions of the specified keyName for the specified resource /// </summary> /// <param name="resource">The resource</param> /// <param name="permissions">The permissions.</param> /// <returns>True, if resource can be accessed otherwise false</returns> /// <exception cref="System.NotImplementedException"></exception> public static ISasTokenValidationResult CheckPolicy(this ISasPolicy sasPolicy, string resource, Permissions permissions) { // match resource if (!Regex.IsMatch(resource, sasPolicy.SharedResourceExpression)) { return new SasTokenValidationResult { Success = false, TokenResponseCode = TokenResponseCode.SharedResourceExpressionFailed } } ; // chck permissions, if provided if (sasPolicy.Permissions != Permissions.None) { if ((permissions & sasPolicy.Permissions) != permissions) { return new SasTokenValidationResult { Success = false, TokenResponseCode = TokenResponseCode.PolicyFailed } } } ; return(new SasTokenValidationResult(resource)); }
/// <summary> /// Create signed sastoken with no additional values /// </summary> public static SasTokenParameters Create(string sharedResourceName, ISasPolicy policy, bool calculateSignature) { var token = ExecuteCreate( sharedResourceName, policy.TokenTimeOut, policy.Skn, null, policy.UseNonce, policy.HashType, calculateSignature ? policy.Key : string.Empty ); return(token); }
public SasTokenValidator(ISasPolicy policy) : this() { policies.Add(policy.Skn, policy); }
///// <summary> ///// Create signed sastoken using a policy ///// </summary> public static SasTokenParameters Create(string sharedResourceName, ISasPolicy policy) { return(ExecuteCreate(sharedResourceName, policy.TokenTimeOut, policy.Skn, null, policy.UseNonce, policy.HashType, policy.Key)); }
///// <summary> ///// Create signed sastoken using a policy ///// </summary> public static SasTokenParameters Create(string sharedResourceName, IDictionary <string, string> additionalValues, ISasPolicy policy) { return(ExecuteCreate(sharedResourceName, policy.TokenTimeOut, policy.Skn, additionalValues, policy.UseNonce, policy.HashType, policy.Key)); }