e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
94 lines
3.1 KiB
C#
94 lines
3.1 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="AuthorizationSection.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace System.Web.Configuration {
|
|
using System;
|
|
using System.Xml;
|
|
using System.Configuration;
|
|
using System.Collections.Specialized;
|
|
using System.Collections;
|
|
using System.Globalization;
|
|
using System.IO;
|
|
using System.Text;
|
|
using System.Security.Principal;
|
|
using System.Web.Util;
|
|
using System.ComponentModel;
|
|
using System.Security.Permissions;
|
|
|
|
/*
|
|
<authorization>
|
|
|
|
<!--
|
|
allow/deny Attributes:
|
|
users="[*|?|name]"
|
|
* - All users
|
|
? - Anonymous users
|
|
[name] - Named user
|
|
roles="[name]"
|
|
-->
|
|
<allow users="*" />
|
|
<!-- <allow users="[comma separated list of users]"
|
|
roles="[comma separated list of roles]"
|
|
verbs="[comma separated list of verbs]" />
|
|
<deny users="[comma separated list of users]"
|
|
roles="[comma separated list of roles]"
|
|
verbs="[comma separated list of verbs]" />
|
|
-->
|
|
|
|
</authorization>
|
|
|
|
<authorization>
|
|
<allow users="*" />
|
|
</authorization>
|
|
|
|
*/
|
|
|
|
/// <devdoc>
|
|
/// <para> Adds Authorization specific information to this section.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public sealed class AuthorizationSection : ConfigurationSection {
|
|
private static ConfigurationPropertyCollection _properties;
|
|
private static readonly ConfigurationProperty _propRules =
|
|
new ConfigurationProperty(null, typeof(AuthorizationRuleCollection), null, ConfigurationPropertyOptions.IsDefaultCollection);
|
|
|
|
private bool _EveryoneAllowed = false;
|
|
internal bool EveryoneAllowed { get { return _EveryoneAllowed; } }
|
|
|
|
static AuthorizationSection() {
|
|
// Property initialization
|
|
_properties = new ConfigurationPropertyCollection();
|
|
_properties.Add(_propRules);
|
|
}
|
|
|
|
public AuthorizationSection() {
|
|
}
|
|
|
|
protected override ConfigurationPropertyCollection Properties {
|
|
get {
|
|
return _properties;
|
|
}
|
|
}
|
|
|
|
[ConfigurationProperty("", IsDefaultCollection = true)]
|
|
public AuthorizationRuleCollection Rules {
|
|
get {
|
|
return (AuthorizationRuleCollection)base[_propRules];
|
|
}
|
|
}
|
|
|
|
protected override void PostDeserialize() {
|
|
if (Rules.Count > 0) {
|
|
_EveryoneAllowed = (Rules[0].Action == AuthorizationRuleAction.Allow && Rules[0].Everyone);
|
|
}
|
|
}
|
|
|
|
internal bool IsUserAllowed(IPrincipal user, String verb) {
|
|
return Rules.IsUserAllowed(user, verb);
|
|
}
|
|
} // class AuthorizationSection
|
|
}
|