Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- PageContentCollection.cs
- CounterCreationData.cs
- RuntimeCompatibilityAttribute.cs
- ResourceContainerWrapper.cs
- RoleService.cs
- TypedCompletedAsyncResult.cs
- TransformerInfo.cs
- XmlSchemaSimpleTypeList.cs
- WeakReferenceEnumerator.cs
- DesignerForm.cs
- ListBindableAttribute.cs
- GlobalizationAssembly.cs
- Int32KeyFrameCollection.cs
- DataExchangeServiceBinder.cs
- DataListItem.cs
- Binding.cs
- ResourceContainer.cs
- XPathMessageFilterElementCollection.cs
- ExpandCollapseProviderWrapper.cs
- DbConnectionPoolGroupProviderInfo.cs
- SmtpTransport.cs
- MgmtConfigurationRecord.cs
- PartitionedStream.cs
- ProjectionPruner.cs
- ViewCellSlot.cs
- ResourceReader.cs
- LocalizableAttribute.cs
- ActiveXContainer.cs
- ExecutionContext.cs
- HwndSource.cs
- ServiceReference.cs
- AutomationAttributeInfo.cs
- IOException.cs
- SqlStatistics.cs
- MessageSecurityVersionConverter.cs
- LocationUpdates.cs
- Accessible.cs
- DataControlCommands.cs
- GridSplitter.cs
- CreateUserErrorEventArgs.cs
- RemotingServices.cs
- Int32RectValueSerializer.cs
- WindowsContainer.cs
- NumericUpDown.cs
- MenuItem.cs
- FunctionNode.cs
- RenderOptions.cs
- HtmlWindowCollection.cs
- HttpProfileGroupBase.cs
- TextViewSelectionProcessor.cs
- GeometryCombineModeValidation.cs
- DbgUtil.cs
- XmlNode.cs
- PlacementWorkspace.cs
- SetIterators.cs
- RayMeshGeometry3DHitTestResult.cs
- MultipleViewProviderWrapper.cs
- ValidationResult.cs
- BuildProvider.cs
- TextElementAutomationPeer.cs
- DataRelationCollection.cs
- FormViewDesigner.cs
- ListViewHitTestInfo.cs
- ExpandableObjectConverter.cs
- DesignerSerializationOptionsAttribute.cs
- CallbackTimeoutsBehavior.cs
- Debug.cs
- ResourceExpressionBuilder.cs
- WorkflowApplicationUnloadedException.cs
- TextWriterTraceListener.cs
- DiscoveryClientOutputChannel.cs
- DataGridColumnCollection.cs
- FontDriver.cs
- IndentedWriter.cs
- BinaryNegotiation.cs
- XmlDataLoader.cs
- IsolatedStorage.cs
- DeviceSpecificDesigner.cs
- JavaScriptSerializer.cs
- BoundColumn.cs
- IndexingContentUnit.cs
- Table.cs
- MenuItem.cs
- ProgressBar.cs
- TextUtf8RawTextWriter.cs
- StructureChangedEventArgs.cs
- Int32CAMarshaler.cs
- XsltLibrary.cs
- TranslateTransform3D.cs
- ObjectAnimationUsingKeyFrames.cs
- UserControlDesigner.cs
- HtmlContainerControl.cs
- NetStream.cs
- ImageAnimator.cs
- CollectionBase.cs
- GlobalItem.cs
- SecurityException.cs
- WebPartMenu.cs
- ELinqQueryState.cs
- ConfigurationSectionHelper.cs