Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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.
//
//-----------------------------------------------------------------------------
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XsltSettings.cs
- OletxResourceManager.cs
- BevelBitmapEffect.cs
- InplaceBitmapMetadataWriter.cs
- IInstanceTable.cs
- mansign.cs
- Queue.cs
- SizeValueSerializer.cs
- WindowsTitleBar.cs
- Geometry.cs
- HttpInputStream.cs
- QueryExecutionOption.cs
- CacheMemory.cs
- TailPinnedEventArgs.cs
- ObjectResult.cs
- SerializationFieldInfo.cs
- BindableAttribute.cs
- SR.cs
- _RequestCacheProtocol.cs
- Behavior.cs
- behaviorssection.cs
- HttpChannelListener.cs
- UInt32Storage.cs
- DocumentOrderQuery.cs
- UpdateManifestForBrowserApplication.cs
- RuntimeIdentifierPropertyAttribute.cs
- CodeTypeOfExpression.cs
- RouteItem.cs
- XmlTypeMapping.cs
- WindowsGraphics2.cs
- CompiledRegexRunner.cs
- ImageListImageEditor.cs
- ValidationUtility.cs
- OptionalColumn.cs
- QilXmlReader.cs
- Material.cs
- LogicalExpressionTypeConverter.cs
- IdentityNotMappedException.cs
- XmlFormatReaderGenerator.cs
- EdmTypeAttribute.cs
- EventDriven.cs
- IMembershipProvider.cs
- IFlowDocumentViewer.cs
- IncrementalHitTester.cs
- FormViewCommandEventArgs.cs
- ListViewItem.cs
- MenuItemStyleCollection.cs
- XmlNode.cs
- DataGridRowsPresenter.cs
- XPathQilFactory.cs
- cookieexception.cs
- ToolStripDropDownClosingEventArgs.cs
- SQLBytes.cs
- XmlToDatasetMap.cs
- MenuItemStyle.cs
- COM2PropertyDescriptor.cs
- SettingsPropertyIsReadOnlyException.cs
- XDeferredAxisSource.cs
- CompressedStack.cs
- SmiConnection.cs
- MatcherBuilder.cs
- JapaneseCalendar.cs
- BamlTreeMap.cs
- PageEventArgs.cs
- input.cs
- ProfileService.cs
- DataSourceIDConverter.cs
- FileEnumerator.cs
- SafeNativeMethods.cs
- InheritanceAttribute.cs
- DynamicResourceExtensionConverter.cs
- InfocardClientCredentials.cs
- BaseTemplateCodeDomTreeGenerator.cs
- ObjectConverter.cs
- RadioButton.cs
- SecurityContextKeyIdentifierClause.cs
- Predicate.cs
- _KerberosClient.cs
- SqlUnionizer.cs
- ClassDataContract.cs
- StorageScalarPropertyMapping.cs
- NetStream.cs
- _ConnectStream.cs
- ZoneMembershipCondition.cs
- MetafileHeader.cs
- ParameterCollection.cs
- InProcStateClientManager.cs
- SimpleType.cs
- WebPageTraceListener.cs
- TextModifier.cs
- ObfuscateAssemblyAttribute.cs
- CodeIdentifier.cs
- ItemType.cs
- ControlUtil.cs
- _OverlappedAsyncResult.cs
- ConsumerConnectionPoint.cs
- MemberDomainMap.cs
- SQLBinary.cs
- HostingEnvironmentWrapper.cs
- IDReferencePropertyAttribute.cs