예제 #1
0
        /// <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));
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
 public SasTokenValidator(ISasPolicy policy) : this()
 {
     policies.Add(policy.Skn, policy);
 }
예제 #4
0
 ///// <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));
 }
예제 #5
0
 ///// <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));
 }