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
- ObjectTag.cs
- ExpressionBuilderCollection.cs
- DoubleLinkList.cs
- Timer.cs
- AutoSizeToolBoxItem.cs
- LinqDataSourceValidationException.cs
- EndpointDiscoveryMetadataCD1.cs
- Selector.cs
- QueryCacheEntry.cs
- BinaryQueryOperator.cs
- ErrorRuntimeConfig.cs
- ClientApiGenerator.cs
- GrabHandleGlyph.cs
- DbCommandTree.cs
- OdbcCommand.cs
- Point3DCollection.cs
- List.cs
- AsnEncodedData.cs
- JsonDataContract.cs
- WindowPattern.cs
- prompt.cs
- DataBindEngine.cs
- CompilationLock.cs
- FormsAuthenticationModule.cs
- SelectionList.cs
- ToolStripProgressBar.cs
- recordstatefactory.cs
- KerberosReceiverSecurityToken.cs
- UIElement3D.cs
- WindowCollection.cs
- DoubleKeyFrameCollection.cs
- NamespaceQuery.cs
- UserControl.cs
- MessageQueueConverter.cs
- LocalizableAttribute.cs
- OutputWindow.cs
- ZoneIdentityPermission.cs
- TimelineGroup.cs
- JournalEntryListConverter.cs
- UnsafeNativeMethods.cs
- HostedAspNetEnvironment.cs
- DeflateEmulationStream.cs
- EventMappingSettingsCollection.cs
- FamilyCollection.cs
- HMACSHA512.cs
- EpmSourceTree.cs
- JournalEntryListConverter.cs
- RequestChannel.cs
- dataprotectionpermissionattribute.cs
- EditorAttribute.cs
- SignatureResourcePool.cs
- ContextBase.cs
- Utils.cs
- SiteMapProvider.cs
- ClickablePoint.cs
- ObjectContext.cs
- IPEndPointCollection.cs
- ConfigXmlElement.cs
- SimpleBitVector32.cs
- RtfNavigator.cs
- JavaScriptSerializer.cs
- TraceContextRecord.cs
- WeakReference.cs
- SchemaCreator.cs
- SystemIPGlobalStatistics.cs
- ReadOnlyObservableCollection.cs
- PartBasedPackageProperties.cs
- CheckBoxStandardAdapter.cs
- AncestorChangedEventArgs.cs
- StylusPoint.cs
- BridgeDataRecord.cs
- ChannelSinkStacks.cs
- PresentationSource.cs
- StorageMappingItemLoader.cs
- RepeaterItemCollection.cs
- EventBindingService.cs
- InstanceKeyCollisionException.cs
- WebBrowserEvent.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- ItemsControl.cs
- PermissionListSet.cs
- WrapPanel.cs
- PreviewKeyDownEventArgs.cs
- DelimitedListTraceListener.cs
- PageParserFilter.cs
- AccessViolationException.cs
- GeneratedView.cs
- OutputCacheSettingsSection.cs
- ObjectHelper.cs
- ReadOnlyDictionary.cs
- PreviewControlDesigner.cs
- SettingsProperty.cs
- IListConverters.cs
- Encoder.cs
- ComplexBindingPropertiesAttribute.cs
- IInstanceTable.cs
- LicenseContext.cs
- DataGridViewCellEventArgs.cs
- SplineQuaternionKeyFrame.cs
- DataGridViewRowPostPaintEventArgs.cs