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
- StringExpressionSet.cs
- _CookieModule.cs
- DocumentAutomationPeer.cs
- PolicyImporterElementCollection.cs
- SqlRowUpdatingEvent.cs
- ActivationArguments.cs
- DocumentXPathNavigator.cs
- ComplusTypeValidator.cs
- SmtpNtlmAuthenticationModule.cs
- PrePrepareMethodAttribute.cs
- RuntimeArgumentHandle.cs
- BamlVersionHeader.cs
- IPHostEntry.cs
- ToolboxItemFilterAttribute.cs
- TreeWalker.cs
- InplaceBitmapMetadataWriter.cs
- XmlBinaryReader.cs
- TextUtf8RawTextWriter.cs
- HtmlControlPersistable.cs
- IntPtr.cs
- NativeMethods.cs
- formatter.cs
- XhtmlTextWriter.cs
- TextEditorTyping.cs
- SQLGuid.cs
- BeginStoryboard.cs
- DataGridViewCellStyle.cs
- PlanCompiler.cs
- OdbcConnectionHandle.cs
- EntityDataSourceViewSchema.cs
- WebPartEditorOkVerb.cs
- ImageConverter.cs
- LassoSelectionBehavior.cs
- PipeStream.cs
- MiniModule.cs
- RemotingException.cs
- DynamicRenderer.cs
- CompoundFileStreamReference.cs
- IPHostEntry.cs
- FontStyleConverter.cs
- ProfileManager.cs
- Roles.cs
- BinaryMethodMessage.cs
- XmlReflectionMember.cs
- SvcMapFile.cs
- DBCSCodePageEncoding.cs
- backend.cs
- Int32AnimationUsingKeyFrames.cs
- ResXResourceReader.cs
- SHA384.cs
- EditorBrowsableAttribute.cs
- XmlDocument.cs
- WsdlBuildProvider.cs
- MulticastDelegate.cs
- DeferredRunTextReference.cs
- LayoutEvent.cs
- LogReservationCollection.cs
- FileUpload.cs
- LayoutUtils.cs
- EntityViewGenerator.cs
- XmlAttributeAttribute.cs
- ElapsedEventArgs.cs
- PlatformCulture.cs
- WindowsGraphicsWrapper.cs
- NativeObjectSecurity.cs
- ListBoxItem.cs
- SettingsBindableAttribute.cs
- Metadata.cs
- TopClause.cs
- OutOfProcStateClientManager.cs
- TypeDependencyAttribute.cs
- DataViewSettingCollection.cs
- FlagsAttribute.cs
- RoleManagerEventArgs.cs
- Int16Storage.cs
- DesignTimeHTMLTextWriter.cs
- RenderDataDrawingContext.cs
- EventMappingSettingsCollection.cs
- SQLInt32Storage.cs
- MethodExpression.cs
- BeginStoryboard.cs
- StringBlob.cs
- ContainerParagraph.cs
- WsdlInspector.cs
- MailAddress.cs
- ServiceMetadataExtension.cs
- TempEnvironment.cs
- SoapWriter.cs
- LinqDataSourceEditData.cs
- ObjectItemNoOpAssemblyLoader.cs
- MarkupCompilePass2.cs
- DummyDataSource.cs
- XmlDataSourceNodeDescriptor.cs
- TextEditorMouse.cs
- AccessDataSource.cs
- BindableTemplateBuilder.cs
- QuadraticEase.cs
- DependencyObject.cs
- TimeSpanOrInfiniteValidator.cs
- ProfilePropertySettingsCollection.cs