Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / xsp / System / Web / Extensions / ApplicationServices / RoleService.cs / 1 / RoleService.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.ApplicationServices { using System; using System.Diagnostics.CodeAnalysis; using System.ServiceModel; using System.ServiceModel.Activation; using System.ServiceModel.Configuration; using System.Runtime.Serialization; using System.Web; using System.Web.Security; using System.Web.Configuration; using System.Web.Management; using System.Web.Resources; using System.Security.Principal; using System.Web.Hosting; using System.Threading; using System.Configuration.Provider; using System.Security.Permissions; [ AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required), AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal), AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal), ServiceContract(Namespace = "http://asp.net/ApplicationServices/v200"), ServiceBehavior(Namespace="http://asp.net/ApplicationServices/v200", InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple) ] public class RoleService { private static object _selectingProviderEventHandlerLock = new object(); private static EventHandler_selectingProvider; public static event EventHandler SelectingProvider { add { lock (_selectingProviderEventHandlerLock) { _selectingProvider += value; } } remove { lock (_selectingProviderEventHandlerLock) { _selectingProvider -= value; } } } private static void EnsureProviderEnabled() { if (!Roles.Enabled) { throw new ProviderException(AtlasWeb.RoleService_RolesFeatureNotEnabled); } } private RoleProvider GetRoleProvider(IPrincipal user) { string providerName = Roles.Provider.Name; SelectingProviderEventArgs args = new SelectingProviderEventArgs(user, providerName); OnSelectingProvider(args); providerName = args.ProviderName; RoleProvider provider = Roles.Providers[providerName]; if (provider == null) { throw new ProviderException(AtlasWeb.RoleService_RoleProviderNotFound); } return provider; } [OperationContract] public string[] GetRolesForCurrentUser() { try { ApplicationServiceHelper.EnsureRoleServiceEnabled(); EnsureProviderEnabled(); IPrincipal user = ApplicationServiceHelper.GetCurrentUser(HttpContext.Current); string username = ApplicationServiceHelper.GetUserName(user); RoleProvider provider = GetRoleProvider(user); return provider.GetRolesForUser(username); } catch (Exception e) { LogException(e); throw; } } [OperationContract] public bool IsCurrentUserInRole(string role) { if (role == null) { throw new ArgumentNullException("role"); } try { ApplicationServiceHelper.EnsureRoleServiceEnabled(); EnsureProviderEnabled(); IPrincipal user = ApplicationServiceHelper.GetCurrentUser(HttpContext.Current); string username = ApplicationServiceHelper.GetUserName(user); RoleProvider provider = GetRoleProvider(user); return provider.IsUserInRole(username, role); } catch (Exception e) { LogException(e); throw; } } private void LogException(Exception e) { WebServiceErrorEvent errorevent = new WebServiceErrorEvent(AtlasWeb.UnhandledExceptionEventLogMessage, this, e); errorevent.Raise(); } private void OnSelectingProvider(SelectingProviderEventArgs e) { EventHandler handler = _selectingProvider; if (handler != null) { handler(this, e); } } //hiding public constructor internal RoleService() { } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.ApplicationServices { using System; using System.Diagnostics.CodeAnalysis; using System.ServiceModel; using System.ServiceModel.Activation; using System.ServiceModel.Configuration; using System.Runtime.Serialization; using System.Web; using System.Web.Security; using System.Web.Configuration; using System.Web.Management; using System.Web.Resources; using System.Security.Principal; using System.Web.Hosting; using System.Threading; using System.Configuration.Provider; using System.Security.Permissions; [ AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required), AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal), AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal), ServiceContract(Namespace = "http://asp.net/ApplicationServices/v200"), ServiceBehavior(Namespace="http://asp.net/ApplicationServices/v200", InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple) ] public class RoleService { private static object _selectingProviderEventHandlerLock = new object(); private static EventHandler_selectingProvider; public static event EventHandler SelectingProvider { add { lock (_selectingProviderEventHandlerLock) { _selectingProvider += value; } } remove { lock (_selectingProviderEventHandlerLock) { _selectingProvider -= value; } } } private static void EnsureProviderEnabled() { if (!Roles.Enabled) { throw new ProviderException(AtlasWeb.RoleService_RolesFeatureNotEnabled); } } private RoleProvider GetRoleProvider(IPrincipal user) { string providerName = Roles.Provider.Name; SelectingProviderEventArgs args = new SelectingProviderEventArgs(user, providerName); OnSelectingProvider(args); providerName = args.ProviderName; RoleProvider provider = Roles.Providers[providerName]; if (provider == null) { throw new ProviderException(AtlasWeb.RoleService_RoleProviderNotFound); } return provider; } [OperationContract] public string[] GetRolesForCurrentUser() { try { ApplicationServiceHelper.EnsureRoleServiceEnabled(); EnsureProviderEnabled(); IPrincipal user = ApplicationServiceHelper.GetCurrentUser(HttpContext.Current); string username = ApplicationServiceHelper.GetUserName(user); RoleProvider provider = GetRoleProvider(user); return provider.GetRolesForUser(username); } catch (Exception e) { LogException(e); throw; } } [OperationContract] public bool IsCurrentUserInRole(string role) { if (role == null) { throw new ArgumentNullException("role"); } try { ApplicationServiceHelper.EnsureRoleServiceEnabled(); EnsureProviderEnabled(); IPrincipal user = ApplicationServiceHelper.GetCurrentUser(HttpContext.Current); string username = ApplicationServiceHelper.GetUserName(user); RoleProvider provider = GetRoleProvider(user); return provider.IsUserInRole(username, role); } catch (Exception e) { LogException(e); throw; } } private void LogException(Exception e) { WebServiceErrorEvent errorevent = new WebServiceErrorEvent(AtlasWeb.UnhandledExceptionEventLogMessage, this, e); errorevent.Raise(); } private void OnSelectingProvider(SelectingProviderEventArgs e) { EventHandler handler = _selectingProvider; if (handler != null) { handler(this, e); } } //hiding public constructor internal RoleService() { } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AnonymousIdentificationSection.cs
- _HelperAsyncResults.cs
- DataGridCell.cs
- SqlBulkCopy.cs
- RowToParametersTransformer.cs
- SafeCoTaskMem.cs
- Wildcard.cs
- JsonServiceDocumentSerializer.cs
- MexServiceChannelBuilder.cs
- ModuleBuilderData.cs
- OutputScope.cs
- FormViewCommandEventArgs.cs
- ConstraintEnumerator.cs
- StrokeCollection.cs
- SoapSchemaMember.cs
- ActivityStateQuery.cs
- UrlMappingCollection.cs
- DistributedTransactionPermission.cs
- DiscoveryExceptionDictionary.cs
- AppDomainShutdownMonitor.cs
- ScriptControlDescriptor.cs
- EraserBehavior.cs
- InputBinding.cs
- FixedTextPointer.cs
- TraceSection.cs
- CornerRadius.cs
- XsltException.cs
- Adorner.cs
- SettingsPropertyValue.cs
- CustomErrorCollection.cs
- TypeConverterBase.cs
- StringSorter.cs
- CalendarDesigner.cs
- Panel.cs
- CustomTokenProvider.cs
- HWStack.cs
- ResourceContainerWrapper.cs
- _NegoState.cs
- StorageMappingItemCollection.cs
- PartialArray.cs
- ContractMapping.cs
- StorageEntityContainerMapping.cs
- PerformanceCounterNameAttribute.cs
- FileVersionInfo.cs
- WebPartsSection.cs
- OletxTransactionManager.cs
- ResourceBinder.cs
- Util.cs
- NameValuePermission.cs
- RefreshPropertiesAttribute.cs
- FacetChecker.cs
- XmlILIndex.cs
- Errors.cs
- ElapsedEventArgs.cs
- CaseInsensitiveOrdinalStringComparer.cs
- CodeArrayCreateExpression.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- ObjectMemberMapping.cs
- FlatButtonAppearance.cs
- EntitySetBase.cs
- BindingExpression.cs
- PageClientProxyGenerator.cs
- TrackingSection.cs
- NamedObjectList.cs
- ColumnMapCopier.cs
- CreateUserWizard.cs
- SlipBehavior.cs
- ObjectListTitleAttribute.cs
- LocalValueEnumerator.cs
- UriTemplateCompoundPathSegment.cs
- XhtmlBasicLinkAdapter.cs
- localization.cs
- NonSerializedAttribute.cs
- SourceSwitch.cs
- UnmanagedMarshal.cs
- WebSysDefaultValueAttribute.cs
- Normalization.cs
- FixUp.cs
- SQLMoneyStorage.cs
- XmlImplementation.cs
- BoundPropertyEntry.cs
- XmlHierarchicalDataSourceView.cs
- ImageMetadata.cs
- CompositionTarget.cs
- GetFileNameResult.cs
- DesignerSerializationVisibilityAttribute.cs
- LongTypeConverter.cs
- GenerateScriptTypeAttribute.cs
- DocumentScope.cs
- TaiwanCalendar.cs
- NonVisualControlAttribute.cs
- COM2Enum.cs
- Menu.cs
- ReadWriteObjectLock.cs
- TextTreePropertyUndoUnit.cs
- Stack.cs
- TreeNodeCollectionEditor.cs
- SecurityBindingElement.cs
- Internal.cs
- HostingEnvironmentSection.cs