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
- GlobalAllocSafeHandle.cs
- FirstMatchCodeGroup.cs
- ServiceCredentials.cs
- MetadataArtifactLoaderFile.cs
- XmlCountingReader.cs
- UInt64Converter.cs
- BitmapEffectInputConnector.cs
- StdValidatorsAndConverters.cs
- ResourcesChangeInfo.cs
- HandledEventArgs.cs
- EllipseGeometry.cs
- HttpGetProtocolReflector.cs
- RelatedCurrencyManager.cs
- SrgsText.cs
- SystemNetHelpers.cs
- CodeEventReferenceExpression.cs
- StorageEntityTypeMapping.cs
- RowToFieldTransformer.cs
- Validator.cs
- ConfigurationValidatorAttribute.cs
- LowerCaseStringConverter.cs
- TextOnlyOutput.cs
- NavigationHelper.cs
- CriticalHandle.cs
- ListItemCollection.cs
- FileInfo.cs
- RedistVersionInfo.cs
- LineServicesRun.cs
- HttpFileCollection.cs
- MessageHeaderAttribute.cs
- AsyncPostBackErrorEventArgs.cs
- UserControlCodeDomTreeGenerator.cs
- BitmapEffectInput.cs
- HandleTable.cs
- KeyConverter.cs
- BaseTemplateParser.cs
- IndexOutOfRangeException.cs
- EncryptedPackage.cs
- Context.cs
- FontDriver.cs
- ObjectContextServiceProvider.cs
- SimpleTypesSurrogate.cs
- Adorner.cs
- Control.cs
- PropertyManager.cs
- OneOfTypeConst.cs
- UnknownWrapper.cs
- SpecularMaterial.cs
- WorkflowMarkupSerializationManager.cs
- X509PeerCertificateAuthenticationElement.cs
- BindingContext.cs
- AsymmetricSignatureFormatter.cs
- SqlParameterizer.cs
- login.cs
- CardSpaceShim.cs
- WindowsScrollBar.cs
- MediaElement.cs
- BlurBitmapEffect.cs
- Int32Storage.cs
- WebPartTransformerAttribute.cs
- KnownBoxes.cs
- Line.cs
- FacetEnabledSchemaElement.cs
- StylusPlugin.cs
- UnsafeNativeMethods.cs
- SymbolType.cs
- IChannel.cs
- TextElementAutomationPeer.cs
- Repeater.cs
- AttributeProviderAttribute.cs
- FrugalMap.cs
- KeyConverter.cs
- PointAnimationBase.cs
- FixedDSBuilder.cs
- PropertyStore.cs
- EdmValidator.cs
- NextPreviousPagerField.cs
- CharAnimationUsingKeyFrames.cs
- MethodSignatureGenerator.cs
- XmlSchemaImport.cs
- Grid.cs
- WeakRefEnumerator.cs
- CompareInfo.cs
- DebugView.cs
- DataGridViewCellFormattingEventArgs.cs
- HttpListener.cs
- BoolExpressionVisitors.cs
- EditorPartCollection.cs
- NativeWrapper.cs
- PathFigureCollectionConverter.cs
- VersionValidator.cs
- TextLineResult.cs
- LambdaCompiler.cs
- ReadOnlyNameValueCollection.cs
- OracleNumber.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- PixelShader.cs
- ServiceHostingEnvironmentSection.cs
- AccessKeyManager.cs
- ProfileParameter.cs