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
- RegexCompiler.cs
- HttpResponseHeader.cs
- PropertyKey.cs
- ObjectDataSourceFilteringEventArgs.cs
- MailHeaderInfo.cs
- TransformerInfoCollection.cs
- HttpsHostedTransportConfiguration.cs
- DuplicateWaitObjectException.cs
- CodeAttributeDeclaration.cs
- FilteredAttributeCollection.cs
- MessageQueueAccessControlEntry.cs
- ItemChangedEventArgs.cs
- EventLogSession.cs
- XmlILConstructAnalyzer.cs
- Event.cs
- TreeViewCancelEvent.cs
- linebase.cs
- DESCryptoServiceProvider.cs
- InputBindingCollection.cs
- AnnouncementEventArgs.cs
- HttpPostedFileWrapper.cs
- DbParameterHelper.cs
- OptimisticConcurrencyException.cs
- XmlSchemaAnnotation.cs
- SplitterPanelDesigner.cs
- Menu.cs
- UriSection.cs
- ToolStripCodeDomSerializer.cs
- EventLogConfiguration.cs
- Atom10FeedFormatter.cs
- TypeElement.cs
- CompilationUnit.cs
- ModelTreeEnumerator.cs
- PerformanceCounterPermissionEntry.cs
- FormsAuthenticationModule.cs
- Int16Converter.cs
- QuestionEventArgs.cs
- Queue.cs
- HttpTransportElement.cs
- TextElementAutomationPeer.cs
- ViewService.cs
- AxHost.cs
- ReflectionTypeLoadException.cs
- SByte.cs
- XmlElementList.cs
- WindowsStartMenu.cs
- EnlistmentState.cs
- IDReferencePropertyAttribute.cs
- InstancePersistenceContext.cs
- QuadraticBezierSegment.cs
- MatrixCamera.cs
- NodeFunctions.cs
- BufferedGraphicsManager.cs
- ThemeDictionaryExtension.cs
- KeyboardNavigation.cs
- ClientRuntimeConfig.cs
- Parameter.cs
- FixedDocumentPaginator.cs
- UIElementParagraph.cs
- PictureBox.cs
- XsdBuilder.cs
- ProxyWebPartManager.cs
- PrintDialogException.cs
- ImageAnimator.cs
- MissingFieldException.cs
- DrawingAttributeSerializer.cs
- AssemblyNameProxy.cs
- ClientScriptItemCollection.cs
- HttpProfileGroupBase.cs
- PolyBezierSegment.cs
- WebOperationContext.cs
- PixelFormat.cs
- ImageClickEventArgs.cs
- Descriptor.cs
- PixelFormat.cs
- DrawingAttributes.cs
- HttpModuleActionCollection.cs
- KnownTypesProvider.cs
- TargetParameterCountException.cs
- RemoteWebConfigurationHostServer.cs
- InputScope.cs
- NullEntityWrapper.cs
- MSAAEventDispatcher.cs
- SelectionRange.cs
- shaper.cs
- InitializingNewItemEventArgs.cs
- PropertyRef.cs
- WmlCommandAdapter.cs
- IndentedTextWriter.cs
- Model3DCollection.cs
- WebInvokeAttribute.cs
- TypeElement.cs
- DrawingContextWalker.cs
- CategoryEditor.cs
- WebPartCancelEventArgs.cs
- DesignerActionItem.cs
- DataGridViewColumn.cs
- HtmlGenericControl.cs
- DispatcherHookEventArgs.cs
- ReverseInheritProperty.cs