Code:
/ DotNET / DotNET / 8.0 / untmp / Orcas / RTM / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SmtpAuthenticationManager.cs
- RightsManagementPermission.cs
- ConstantSlot.cs
- XmlNodeChangedEventArgs.cs
- DataTableNameHandler.cs
- MissingFieldException.cs
- DebuggerService.cs
- XmlObjectSerializerWriteContext.cs
- WindowsTokenRoleProvider.cs
- NullableIntAverageAggregationOperator.cs
- CodeMemberMethod.cs
- UnauthorizedAccessException.cs
- IIS7WorkerRequest.cs
- BooleanAnimationBase.cs
- ResourceIDHelper.cs
- ProxyWebPart.cs
- DataSet.cs
- UserControlFileEditor.cs
- ImmutableCollection.cs
- FilterElement.cs
- DesignerTransaction.cs
- HtmlMeta.cs
- GridItemCollection.cs
- Image.cs
- LocatorManager.cs
- CommonProperties.cs
- CodeTypeParameter.cs
- HttpWebRequestElement.cs
- MembershipSection.cs
- InternalsVisibleToAttribute.cs
- ObjectStateManagerMetadata.cs
- Schema.cs
- RelationshipDetailsCollection.cs
- IsolatedStoragePermission.cs
- ProviderIncompatibleException.cs
- AtomPub10ServiceDocumentFormatter.cs
- SqlNotificationEventArgs.cs
- ContextMenu.cs
- GeneralTransform2DTo3DTo2D.cs
- QualificationDataAttribute.cs
- rsa.cs
- RegisteredHiddenField.cs
- MimeTypeAttribute.cs
- TreeNodeStyleCollection.cs
- BufferModesCollection.cs
- TreeNodeCollectionEditorDialog.cs
- Addressing.cs
- DrawingContextWalker.cs
- WebPartCollection.cs
- FlowLayoutPanel.cs
- CaseInsensitiveHashCodeProvider.cs
- LazyTextWriterCreator.cs
- OperationFormatter.cs
- SoapSchemaImporter.cs
- PropertyPath.cs
- XamlParser.cs
- WebPartMenu.cs
- BufferedReadStream.cs
- ComponentManagerBroker.cs
- DocumentGridPage.cs
- MobileTextWriter.cs
- QueryableFilterRepeater.cs
- ConnectorEditor.cs
- Vars.cs
- C14NUtil.cs
- JavaScriptSerializer.cs
- CacheManager.cs
- ProcessThreadCollection.cs
- VectorValueSerializer.cs
- SystemColors.cs
- ParamArrayAttribute.cs
- ConfigurationSectionHelper.cs
- SymmetricKeyWrap.cs
- SemanticTag.cs
- HashHelpers.cs
- SafeRegistryHandle.cs
- TemplateControl.cs
- TextShapeableCharacters.cs
- SqlXmlStorage.cs
- Decoder.cs
- bidPrivateBase.cs
- UrlPropertyAttribute.cs
- _NegoState.cs
- WorkflowDesignerMessageFilter.cs
- DataRowComparer.cs
- RegistryDataKey.cs
- DoubleCollectionConverter.cs
- RegexCode.cs
- QuaternionAnimationBase.cs
- HtmlFormWrapper.cs
- GuidelineCollection.cs
- FontEmbeddingManager.cs
- InlineCollection.cs
- CommentAction.cs
- WebRequestModuleElementCollection.cs
- ValueUnavailableException.cs
- Hyperlink.cs
- TextWriterTraceListener.cs
- PropertyInfoSet.cs
- GroupBoxAutomationPeer.cs