Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TemplateBindingExtensionConverter.cs
- InputScopeNameConverter.cs
- OdbcConnectionFactory.cs
- AccessViolationException.cs
- DynamicResourceExtension.cs
- BaseCAMarshaler.cs
- PropertiesTab.cs
- ObjectViewListener.cs
- SrgsGrammarCompiler.cs
- LinkedResource.cs
- GridViewPageEventArgs.cs
- WebBrowserProgressChangedEventHandler.cs
- SmiEventSink_DeferedProcessing.cs
- MemberListBinding.cs
- XmlDownloadManager.cs
- Attributes.cs
- CodeDelegateCreateExpression.cs
- DiagnosticsConfigurationHandler.cs
- HostSecurityManager.cs
- ContractCodeDomInfo.cs
- odbcmetadatacollectionnames.cs
- SpecialNameAttribute.cs
- HostProtectionPermission.cs
- ExpressionBuilder.cs
- SatelliteContractVersionAttribute.cs
- FacetValues.cs
- CollectionChangeEventArgs.cs
- SimpleType.cs
- BitmapData.cs
- HttpValueCollection.cs
- DataViewManager.cs
- SettingsAttributes.cs
- ScaleTransform.cs
- ServiceModelConfigurationSection.cs
- InputMethodStateTypeInfo.cs
- CodeRemoveEventStatement.cs
- TextTabProperties.cs
- WizardStepBase.cs
- httpstaticobjectscollection.cs
- FontEmbeddingManager.cs
- PositiveTimeSpanValidatorAttribute.cs
- MultipartContentParser.cs
- EditorZone.cs
- TypeFieldSchema.cs
- XmlValueConverter.cs
- Soap11ServerProtocol.cs
- MatchingStyle.cs
- BooleanKeyFrameCollection.cs
- webeventbuffer.cs
- DataGridColumnDropSeparator.cs
- DiscoveryClientOutputChannel.cs
- Thumb.cs
- DataGridColumnReorderingEventArgs.cs
- MediaContext.cs
- AppDomainCompilerProxy.cs
- DynamicControlParameter.cs
- BulletedList.cs
- StringArrayConverter.cs
- GeometryDrawing.cs
- ColorMatrix.cs
- ScrollableControlDesigner.cs
- Pkcs7Signer.cs
- PersistenceTask.cs
- MulticastIPAddressInformationCollection.cs
- DomainConstraint.cs
- PropertyRecord.cs
- MaskedTextProvider.cs
- SerializerDescriptor.cs
- XmlSchemaInfo.cs
- ObjectDataSourceWizardForm.cs
- ServiceModelDictionary.cs
- RequestQueue.cs
- ErrorRuntimeConfig.cs
- XmlReflectionMember.cs
- MailDefinitionBodyFileNameEditor.cs
- GrabHandleGlyph.cs
- InputLanguageProfileNotifySink.cs
- InspectionWorker.cs
- TransformCryptoHandle.cs
- DSASignatureFormatter.cs
- EncoderFallback.cs
- EasingFunctionBase.cs
- DesignConnection.cs
- EdmType.cs
- SchemaCompiler.cs
- PrivilegedConfigurationManager.cs
- ResourceFallbackManager.cs
- SerializableAttribute.cs
- ToolboxItemFilterAttribute.cs
- MulticastNotSupportedException.cs
- RoleManagerSection.cs
- SqlConnectionFactory.cs
- ScalarOps.cs
- MethodInfo.cs
- DocumentViewerBaseAutomationPeer.cs
- DllNotFoundException.cs
- XmlToDatasetMap.cs
- QilDataSource.cs
- ExplicitDiscriminatorMap.cs
- ThreadPoolTaskScheduler.cs