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
- SourceLineInfo.cs
- TreeNodeEventArgs.cs
- MimeObjectFactory.cs
- CellPartitioner.cs
- OptionalRstParameters.cs
- WorkflowExecutor.cs
- VisualStyleTypesAndProperties.cs
- LineInfo.cs
- NavigationService.cs
- XmlMembersMapping.cs
- FileRecordSequence.cs
- AssemblySettingAttributes.cs
- StringComparer.cs
- UIPermission.cs
- WindowsGrip.cs
- ValidatorCompatibilityHelper.cs
- BlurEffect.cs
- ScriptingJsonSerializationSection.cs
- LeaseManager.cs
- DataException.cs
- SqlResolver.cs
- XMLSchema.cs
- DbExpressionBuilder.cs
- KeyConstraint.cs
- CaseStatementProjectedSlot.cs
- TargetConverter.cs
- EventBuilder.cs
- StylusButtonEventArgs.cs
- ToolZoneDesigner.cs
- ListViewItemMouseHoverEvent.cs
- WebBrowserHelper.cs
- Point3DCollectionValueSerializer.cs
- DesignOnlyAttribute.cs
- FixedStringLookup.cs
- OdbcDataAdapter.cs
- AppLevelCompilationSectionCache.cs
- SemanticResolver.cs
- input.cs
- DtcInterfaces.cs
- bidPrivateBase.cs
- AutoFocusStyle.xaml.cs
- WebPartMenu.cs
- PasswordRecoveryAutoFormat.cs
- FontSourceCollection.cs
- LabelEditEvent.cs
- ObjectDisposedException.cs
- EndPoint.cs
- DataGridViewAddColumnDialog.cs
- AtomServiceDocumentSerializer.cs
- MultiSelectRootGridEntry.cs
- DefaultHttpHandler.cs
- WindowsListViewItem.cs
- ScriptModule.cs
- HasCopySemanticsAttribute.cs
- StylusPoint.cs
- SelectionItemProviderWrapper.cs
- CubicEase.cs
- UInt64Storage.cs
- ReadOnlyPropertyMetadata.cs
- Query.cs
- LayoutTableCell.cs
- ListSortDescription.cs
- XmlNamespaceMapping.cs
- RuntimeConfig.cs
- MarkupCompiler.cs
- RuleProcessor.cs
- Array.cs
- StoreContentChangedEventArgs.cs
- ToolStripDropTargetManager.cs
- ClipboardData.cs
- _HelperAsyncResults.cs
- HtmlEmptyTagControlBuilder.cs
- FileEnumerator.cs
- Int16Animation.cs
- HtmlInputHidden.cs
- DataPagerField.cs
- CalculatedColumn.cs
- WebBrowserHelper.cs
- CheckBoxFlatAdapter.cs
- XmlUnspecifiedAttribute.cs
- SynchronousChannel.cs
- WebUtil.cs
- MasterPage.cs
- Effect.cs
- ExtenderProvidedPropertyAttribute.cs
- DbProviderConfigurationHandler.cs
- RemotingSurrogateSelector.cs
- XmlSchemaInclude.cs
- SqlTypeConverter.cs
- EmbeddedMailObject.cs
- GeneralTransform2DTo3D.cs
- EndEvent.cs
- FrameworkContentElement.cs
- TypefaceMap.cs
- TdsParameterSetter.cs
- SourceFileBuildProvider.cs
- MeasureItemEvent.cs
- DataRelation.cs
- CompositeDispatchFormatter.cs
- VirtualPath.cs