Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Selectors / WindowsUserNameSecurityTokenAuthenticator.cs / 1 / WindowsUserNameSecurityTokenAuthenticator.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel.Selectors { using System.Collections.ObjectModel; using System.ComponentModel; using System.IdentityModel.Claims; using System.IdentityModel.Policy; using System.IdentityModel.Tokens; using System.Runtime.InteropServices; using System.Security; using System.Security.Principal; public class WindowsUserNameSecurityTokenAuthenticator : UserNameSecurityTokenAuthenticator { bool includeWindowsGroups; public WindowsUserNameSecurityTokenAuthenticator() : this(WindowsClaimSet.DefaultIncludeWindowsGroups) { } public WindowsUserNameSecurityTokenAuthenticator(bool includeWindowsGroups) { this.includeWindowsGroups = includeWindowsGroups; } protected override ReadOnlyCollectionValidateUserNamePasswordCore(string userName, string password) { string domain = null; string[] strings = userName.Split('\\'); if (strings.Length != 1) { if (strings.Length != 2 || String.IsNullOrEmpty(strings[0])) { // Only support one slash and domain cannot be empty (consistent with windowslogon). throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.IncorrectUserNameFormat)); } // This is the downlevel case - domain\userName userName = strings[1]; domain = strings[0]; } const uint LOGON32_PROVIDER_DEFAULT = 0; const uint LOGON32_LOGON_NETWORK_CLEARTEXT = 8; SafeCloseHandle tokenHandle = null; try { if (!NativeMethods.LogonUser(userName, domain, password, LOGON32_LOGON_NETWORK_CLEARTEXT, LOGON32_PROVIDER_DEFAULT, out tokenHandle)) { int error = Marshal.GetLastWin32Error(); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SecurityTokenValidationException(SR.GetString(SR.FailLogonUser, userName), new Win32Exception(error))); } WindowsIdentity windowsIdentity = new WindowsIdentity(tokenHandle.DangerousGetHandle()); WindowsClaimSet claimSet = new WindowsClaimSet(windowsIdentity, this.includeWindowsGroups, false); return SecurityUtils.CreateAuthorizationPolicies(claimSet, claimSet.ExpirationTime); } finally { if (tokenHandle != null) tokenHandle.Close(); } } } } // 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
- FormParameter.cs
- ProcessModuleCollection.cs
- SecurityKeyType.cs
- AsyncOperation.cs
- UniqueCodeIdentifierScope.cs
- KeyedHashAlgorithm.cs
- EndEvent.cs
- HTMLTagNameToTypeMapper.cs
- NavigationHelper.cs
- RawKeyboardInputReport.cs
- CompletedAsyncResult.cs
- ObjectNotFoundException.cs
- TextRunProperties.cs
- DataServiceQueryProvider.cs
- VisualStyleInformation.cs
- COM2FontConverter.cs
- EditorResources.cs
- XPathAxisIterator.cs
- BitmapCodecInfoInternal.cs
- FieldBuilder.cs
- BehaviorEditorPart.cs
- ReadWriteObjectLock.cs
- HighlightVisual.cs
- InternalMappingException.cs
- MetadataArtifactLoader.cs
- SchemaElementDecl.cs
- GeneralTransform3D.cs
- ListViewItemEventArgs.cs
- MemberCollection.cs
- UniformGrid.cs
- PointConverter.cs
- GetPageCompletedEventArgs.cs
- ExpressionNode.cs
- BitmapEffectState.cs
- XPathDocumentBuilder.cs
- XmlAttributeCollection.cs
- Contracts.cs
- linebase.cs
- FacetEnabledSchemaElement.cs
- SecurityContextSecurityTokenParameters.cs
- CustomAssemblyResolver.cs
- DataGridColumnsPage.cs
- DashStyle.cs
- DataListCommandEventArgs.cs
- BindingsCollection.cs
- EmptyEnumerator.cs
- DbProviderFactoriesConfigurationHandler.cs
- AQNBuilder.cs
- DocumentXmlWriter.cs
- Calendar.cs
- ClientUrlResolverWrapper.cs
- CompositeTypefaceMetrics.cs
- ControlPropertyNameConverter.cs
- SqlStatistics.cs
- SortDescriptionCollection.cs
- HorizontalAlignConverter.cs
- DataTableMapping.cs
- SqlConnectionString.cs
- Pkcs9Attribute.cs
- Span.cs
- ControlAdapter.cs
- ColorEditor.cs
- GenericQueueSurrogate.cs
- MULTI_QI.cs
- ManagementObject.cs
- Adorner.cs
- MatrixIndependentAnimationStorage.cs
- DataGridBoolColumn.cs
- TextRunCache.cs
- MobileControlsSectionHandler.cs
- PipelineDeploymentState.cs
- XMLSyntaxException.cs
- InputScopeNameConverter.cs
- StorageEntitySetMapping.cs
- PersianCalendar.cs
- FixedDSBuilder.cs
- SqlUtil.cs
- BrushMappingModeValidation.cs
- TileBrush.cs
- SecureUICommand.cs
- Graph.cs
- PreloadedPackages.cs
- RtfToken.cs
- ClientConfigurationHost.cs
- XmlDsigSep2000.cs
- WorkflowMarkupSerializationException.cs
- LambdaCompiler.ControlFlow.cs
- DataGridViewCellEventArgs.cs
- TextMetrics.cs
- XPathAxisIterator.cs
- DirectionalLight.cs
- NumericPagerField.cs
- AnyReturnReader.cs
- EventSetter.cs
- WaitHandleCannotBeOpenedException.cs
- SamlAuthenticationClaimResource.cs
- InheritablePropertyChangeInfo.cs
- EventHandlersStore.cs
- SafeNativeMethods.cs
- TextFormatter.cs