Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / ApplicationServices / RoleService.cs / 1305376 / 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; [ AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required), 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; [ AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required), 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
- StructuralType.cs
- MouseEventArgs.cs
- HttpPostedFileWrapper.cs
- DataBindingHandlerAttribute.cs
- InheritedPropertyChangedEventArgs.cs
- TextRangeEditLists.cs
- IPipelineRuntime.cs
- ButtonChrome.cs
- FrameworkContentElementAutomationPeer.cs
- HandlerBase.cs
- SortedList.cs
- ToolboxItemSnapLineBehavior.cs
- XmlTextReader.cs
- Propagator.cs
- SmtpTransport.cs
- JulianCalendar.cs
- Latin1Encoding.cs
- SchemaComplexType.cs
- MatrixAnimationUsingKeyFrames.cs
- GlyphingCache.cs
- XmlConvert.cs
- GridEntry.cs
- ExportOptions.cs
- InstanceNameConverter.cs
- StubHelpers.cs
- LambdaCompiler.Logical.cs
- ParallelTimeline.cs
- Msec.cs
- ControlParser.cs
- AxisAngleRotation3D.cs
- ExpressionLexer.cs
- InputScope.cs
- TraceSection.cs
- PaginationProgressEventArgs.cs
- GraphicsContainer.cs
- SqlDataSourceEnumerator.cs
- CollectionBuilder.cs
- AnonymousIdentificationSection.cs
- SelectedDatesCollection.cs
- ProxyAttribute.cs
- Decoder.cs
- Converter.cs
- DeclarativeCatalogPart.cs
- RelationshipConverter.cs
- ScrollViewerAutomationPeer.cs
- Vector.cs
- PaintValueEventArgs.cs
- TypeDelegator.cs
- ColorDialog.cs
- InsufficientExecutionStackException.cs
- SqlFormatter.cs
- RectangleF.cs
- ValidatingCollection.cs
- SkipStoryboardToFill.cs
- SelectionList.cs
- TypeFieldSchema.cs
- DependencyObjectPropertyDescriptor.cs
- StrokeRenderer.cs
- Tile.cs
- Int32Rect.cs
- ExpressionBuilder.cs
- String.cs
- WebPartZoneDesigner.cs
- AssociationEndMember.cs
- HealthMonitoringSection.cs
- ControlTemplate.cs
- PerformanceCountersElement.cs
- EntryPointNotFoundException.cs
- CompModSwitches.cs
- FormsAuthenticationCredentials.cs
- XmlCharacterData.cs
- SmiXetterAccessMap.cs
- ErrorWrapper.cs
- NavigatorOutput.cs
- DisplayInformation.cs
- Rotation3DAnimation.cs
- RegistryKey.cs
- WorkflowMarkupSerializationManager.cs
- AssemblySettingAttributes.cs
- HtmlShimManager.cs
- BitStack.cs
- WindowsListViewSubItem.cs
- TableCellCollection.cs
- ContextMenuAutomationPeer.cs
- EndpointAddressProcessor.cs
- UInt32.cs
- Control.cs
- FaultImportOptions.cs
- ReflectionTypeLoadException.cs
- ShortcutKeysEditor.cs
- ErrorsHelper.cs
- DateTimeParse.cs
- QuaternionAnimationBase.cs
- DataViewManagerListItemTypeDescriptor.cs
- TypeInitializationException.cs
- NonParentingControl.cs
- TypeResolver.cs
- GenericPrincipal.cs
- EntityContainerAssociationSet.cs
- NamespaceEmitter.cs