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
- PersonalizationState.cs
- CodeTypeMember.cs
- BreakSafeBase.cs
- ContextInformation.cs
- XmlElementAttribute.cs
- _TimerThread.cs
- MDIWindowDialog.cs
- HTTP_SERVICE_CONFIG_URLACL_PARAM.cs
- GACIdentityPermission.cs
- SerializationInfo.cs
- XmlReaderDelegator.cs
- SerializationHelper.cs
- MediaContext.cs
- AesManaged.cs
- PointConverter.cs
- MenuTracker.cs
- BitmapFrameDecode.cs
- OutputCacheProfileCollection.cs
- _Rfc2616CacheValidators.cs
- SqlBuilder.cs
- JobPageOrder.cs
- CodeCompileUnit.cs
- ConfigXmlText.cs
- SqlMethodAttribute.cs
- DesignerVerbCollection.cs
- HttpGetProtocolReflector.cs
- DataSourceView.cs
- ObjectSerializerFactory.cs
- HeaderedItemsControl.cs
- sqlmetadatafactory.cs
- CalculatedColumn.cs
- ParentQuery.cs
- RenderOptions.cs
- Color.cs
- TypeUtil.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- XmlSerializerOperationBehavior.cs
- RegularExpressionValidator.cs
- _Connection.cs
- SecurityPermission.cs
- StylusPointPropertyUnit.cs
- ValueOfAction.cs
- FindCriteriaCD1.cs
- PageEventArgs.cs
- DependencyPropertyKind.cs
- TextServicesHost.cs
- UnknownBitmapEncoder.cs
- ComponentRenameEvent.cs
- HttpCookie.cs
- MatrixAnimationBase.cs
- RemotingServices.cs
- SharedDp.cs
- ResourceReader.cs
- WebPartHeaderCloseVerb.cs
- LoginName.cs
- RectAnimationUsingKeyFrames.cs
- CachedBitmap.cs
- EntryIndex.cs
- MenuEventArgs.cs
- DataGridItemCollection.cs
- QueryResponse.cs
- _FtpControlStream.cs
- TranslateTransform.cs
- StateMachineHelpers.cs
- JpegBitmapDecoder.cs
- HtmlTernaryTree.cs
- WebEvents.cs
- EditableTreeList.cs
- ClientRequest.cs
- SHA512Managed.cs
- GlyphRunDrawing.cs
- SoapWriter.cs
- HistoryEventArgs.cs
- DetailsViewAutoFormat.cs
- FreezableOperations.cs
- CachedBitmap.cs
- ContextMenuAutomationPeer.cs
- ModuleBuilderData.cs
- DataGridViewRowsAddedEventArgs.cs
- HttpRequest.cs
- PropertyRef.cs
- DataGridViewCellPaintingEventArgs.cs
- NetCodeGroup.cs
- TracingConnectionListener.cs
- NullableConverter.cs
- ProfileProvider.cs
- Attributes.cs
- SecurityException.cs
- ExclusiveTcpListener.cs
- ColorContextHelper.cs
- CapabilitiesPattern.cs
- Floater.cs
- WsrmMessageInfo.cs
- AsyncContentLoadedEventArgs.cs
- ClonableStack.cs
- ContextInformation.cs
- UniqueConstraint.cs
- CompilationLock.cs
- StreamGeometryContext.cs
- QueryProcessor.cs