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
- HintTextMaxWidthConverter.cs
- PowerModeChangedEventArgs.cs
- SeverityFilter.cs
- TextTreeTextNode.cs
- NativeRecognizer.cs
- ScrollItemPattern.cs
- LinkArea.cs
- EncoderBestFitFallback.cs
- StandardRuntimeEnumValidator.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- SqlFlattener.cs
- SafePointer.cs
- SafeRightsManagementPubHandle.cs
- RuntimeHelpers.cs
- FormViewPagerRow.cs
- SyncOperationState.cs
- SynchronizedInputProviderWrapper.cs
- CultureSpecificCharacterBufferRange.cs
- DictionaryBase.cs
- ScopedKnownTypes.cs
- ToolTipService.cs
- SqlParameterizer.cs
- TemplateKeyConverter.cs
- EpmSyndicationContentSerializer.cs
- OptimizedTemplateContent.cs
- FileReservationCollection.cs
- SoapHttpTransportImporter.cs
- CommunicationException.cs
- DeflateStream.cs
- DllNotFoundException.cs
- TreeView.cs
- NonDualMessageSecurityOverHttp.cs
- SimpleTextLine.cs
- ElapsedEventArgs.cs
- SystemResourceKey.cs
- GestureRecognizer.cs
- MinMaxParagraphWidth.cs
- ConfigurationStrings.cs
- PartialArray.cs
- UIElement.cs
- PathGeometry.cs
- TreeNodeBinding.cs
- WebReferencesBuildProvider.cs
- PerformanceCounterLib.cs
- GeneralTransformCollection.cs
- ToolCreatedEventArgs.cs
- IconBitmapDecoder.cs
- XmlDataCollection.cs
- SecureEnvironment.cs
- EntityDataSourceContainerNameConverter.cs
- ExpressionWriter.cs
- UpdateCompiler.cs
- X509ClientCertificateCredentialsElement.cs
- FileCodeGroup.cs
- FormatException.cs
- SafeProcessHandle.cs
- BitmapEffectDrawing.cs
- ItemsControlAutomationPeer.cs
- SqlLiftWhereClauses.cs
- SystemIcmpV6Statistics.cs
- SoapSchemaImporter.cs
- NameValueSectionHandler.cs
- GetPageCompletedEventArgs.cs
- FilterableAttribute.cs
- ApplicationProxyInternal.cs
- EditingCommands.cs
- CodeDomSerializer.cs
- DropDownButton.cs
- HttpRequestContext.cs
- ConstructorBuilder.cs
- MiniMapControl.xaml.cs
- xdrvalidator.cs
- GenericTextProperties.cs
- TransformedBitmap.cs
- XmlCharType.cs
- ApplicationSecurityInfo.cs
- MissingFieldException.cs
- UInt64Storage.cs
- XPathExpr.cs
- AuthenticationService.cs
- EventSinkHelperWriter.cs
- OutputCacheSettings.cs
- TransformGroup.cs
- bidPrivateBase.cs
- SplitContainer.cs
- Scripts.cs
- DecryptRequest.cs
- SqlConnectionFactory.cs
- DCSafeHandle.cs
- SeekStoryboard.cs
- EmptyStringExpandableObjectConverter.cs
- FunctionImportMapping.cs
- ClientRolePrincipal.cs
- ConditionalBranch.cs
- DiagnosticTraceSource.cs
- UDPClient.cs
- BitmapEffect.cs
- ControllableStoryboardAction.cs
- IOException.cs
- RawAppCommandInputReport.cs