Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Selectors / WindowsUserNameSecurityTokenAuthenticator.cs / 1305376 / 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(), SecurityUtils.AuthTypeBasic); WindowsClaimSet claimSet = new WindowsClaimSet(windowsIdentity, SecurityUtils.AuthTypeBasic, 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextModifierScope.cs
- ChannelAcceptor.cs
- BackStopAuthenticationModule.cs
- ProviderConnectionPoint.cs
- DateTimeParse.cs
- CodeCompileUnit.cs
- Membership.cs
- documentsequencetextview.cs
- LOSFormatter.cs
- CreateParams.cs
- AssemblyInfo.cs
- BaseProcessor.cs
- CryptoApi.cs
- BorderSidesEditor.cs
- DispatchProxy.cs
- RotationValidation.cs
- LogLogRecord.cs
- EncryptedXml.cs
- PageAdapter.cs
- EmptyQuery.cs
- SqlFileStream.cs
- UnmanagedMemoryStream.cs
- EntitySetDataBindingList.cs
- Stackframe.cs
- TreeView.cs
- AttachedPropertyDescriptor.cs
- XamlHttpHandlerFactory.cs
- XamlReaderHelper.cs
- ParagraphResult.cs
- VirtualPathUtility.cs
- CLSCompliantAttribute.cs
- SelectionEditingBehavior.cs
- PkcsUtils.cs
- XPathDocument.cs
- WebServiceClientProxyGenerator.cs
- IdentityManager.cs
- ChannelSinkStacks.cs
- SystemTcpStatistics.cs
- InboundActivityHelper.cs
- BidPrivateBase.cs
- SqlMultiplexer.cs
- AstTree.cs
- SynchronizationScope.cs
- StringWriter.cs
- Executor.cs
- CellParagraph.cs
- SecurityException.cs
- CodeAssignStatement.cs
- PersonalizationAdministration.cs
- DataGridViewImageColumn.cs
- WindowInteropHelper.cs
- InvokeCompletedEventArgs.cs
- ToolBarOverflowPanel.cs
- PlacementWorkspace.cs
- SqlOuterApplyReducer.cs
- DocumentSequence.cs
- ScrollBar.cs
- Currency.cs
- EmptyStringExpandableObjectConverter.cs
- TabletDevice.cs
- Renderer.cs
- Opcode.cs
- RangeValidator.cs
- StatusBarAutomationPeer.cs
- DataContract.cs
- SqlException.cs
- TextView.cs
- StandardOleMarshalObject.cs
- InheritanceContextHelper.cs
- TypeValidationEventArgs.cs
- AssociativeAggregationOperator.cs
- StorageEntityContainerMapping.cs
- SystemIPInterfaceStatistics.cs
- StaticSiteMapProvider.cs
- AdornerHitTestResult.cs
- AuthenticationSection.cs
- SyndicationSerializer.cs
- BitVec.cs
- XhtmlBasicTextViewAdapter.cs
- EdmFunctions.cs
- FormView.cs
- HttpCacheParams.cs
- TailPinnedEventArgs.cs
- CompilerParameters.cs
- InputEventArgs.cs
- PointLightBase.cs
- Image.cs
- MetabaseSettings.cs
- FactoryId.cs
- StrokeRenderer.cs
- SubqueryRules.cs
- ChtmlImageAdapter.cs
- CompiledWorkflowDefinitionContext.cs
- FileStream.cs
- ProxyGenerator.cs
- ConfigurationPropertyCollection.cs
- ToolStripDropDownClosedEventArgs.cs
- Base64Decoder.cs
- LinkedResourceCollection.cs
- XAMLParseException.cs