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
- QilDataSource.cs
- VarRemapper.cs
- XmlSchemaNotation.cs
- SqlBooleanizer.cs
- DefaultEvaluationContext.cs
- TextRangeProviderWrapper.cs
- SerializeAbsoluteContext.cs
- ScrollItemPattern.cs
- ListBox.cs
- BufferedStream2.cs
- FastPropertyAccessor.cs
- ClientUtils.cs
- StrokeDescriptor.cs
- AssemblyAssociatedContentFileAttribute.cs
- DetailsViewRowCollection.cs
- CompositeKey.cs
- ClientConvert.cs
- SystemIPInterfaceProperties.cs
- NameSpaceExtractor.cs
- XmlSchemaObjectTable.cs
- StaticResourceExtension.cs
- StaticExtensionConverter.cs
- Int64.cs
- ProfileGroupSettingsCollection.cs
- DataGridViewImageColumn.cs
- PreProcessor.cs
- DataGridViewIntLinkedList.cs
- X500Name.cs
- CustomDictionarySources.cs
- ImageProxy.cs
- ActiveDocumentEvent.cs
- XsltException.cs
- MdbDataFileEditor.cs
- UriTemplatePathSegment.cs
- DataGridViewCellConverter.cs
- XmlnsCache.cs
- WsatAdminException.cs
- NotSupportedException.cs
- EnumConverter.cs
- FileChangesMonitor.cs
- DbConnectionStringBuilder.cs
- Region.cs
- TimeSpanOrInfiniteConverter.cs
- IListConverters.cs
- ExpressionVisitorHelpers.cs
- PageTheme.cs
- KeyEventArgs.cs
- ArrayItemReference.cs
- SqlProvider.cs
- DrawItemEvent.cs
- InvalidDataException.cs
- BindingCompleteEventArgs.cs
- SpecialFolderEnumConverter.cs
- RequestContext.cs
- WindowsAltTab.cs
- TokenBasedSetEnumerator.cs
- OverlappedAsyncResult.cs
- ZoneLinkButton.cs
- LoadRetryHandler.cs
- GAC.cs
- AttachedAnnotationChangedEventArgs.cs
- DataSourceView.cs
- AstNode.cs
- DataGridViewEditingControlShowingEventArgs.cs
- TextUtf8RawTextWriter.cs
- WinEventTracker.cs
- TextSelectionHighlightLayer.cs
- XmlnsPrefixAttribute.cs
- WindowsRichEditRange.cs
- Section.cs
- ListenDesigner.cs
- AdapterUtil.cs
- SortDescriptionCollection.cs
- LicenseProviderAttribute.cs
- prefixendpointaddressmessagefilter.cs
- XmlAttributeAttribute.cs
- BitmapEffectOutputConnector.cs
- AsyncPostBackErrorEventArgs.cs
- AutomationProperties.cs
- SchemaCollectionPreprocessor.cs
- RowToFieldTransformer.cs
- EventLog.cs
- ParameterBuilder.cs
- Site.cs
- Baml2006KeyRecord.cs
- RoleExceptions.cs
- ping.cs
- ToolboxBitmapAttribute.cs
- CodeGotoStatement.cs
- CommonDialog.cs
- EmbeddedMailObject.cs
- SingleResultAttribute.cs
- ResourceManager.cs
- LogPolicy.cs
- ScriptingWebServicesSectionGroup.cs
- QueryCacheManager.cs
- ToolStripPanelCell.cs
- HttpListenerPrefixCollection.cs
- QueryOutputWriter.cs
- PackagePartCollection.cs