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
- Span.cs
- RegionData.cs
- IsolatedStoragePermission.cs
- NestedContainer.cs
- MatrixCamera.cs
- DayRenderEvent.cs
- SystemIPInterfaceProperties.cs
- DataGridBoundColumn.cs
- TextTrailingWordEllipsis.cs
- Border.cs
- MachineKeySection.cs
- XmlIterators.cs
- CalendarDateChangedEventArgs.cs
- NativeMethods.cs
- RemoteWebConfigurationHost.cs
- Win32Native.cs
- Assembly.cs
- JapaneseLunisolarCalendar.cs
- FontUnitConverter.cs
- AutomationFocusChangedEventArgs.cs
- HelloMessageApril2005.cs
- KeyTime.cs
- IntermediatePolicyValidator.cs
- IDQuery.cs
- AuthorizationContext.cs
- ObjectContext.cs
- ContentOperations.cs
- EntityDesignerDataSourceView.cs
- TextOutput.cs
- RewritingProcessor.cs
- DetailsViewUpdateEventArgs.cs
- Processor.cs
- HeaderedContentControl.cs
- UTF32Encoding.cs
- EntityProviderFactory.cs
- XamlGridLengthSerializer.cs
- DateTimeFormat.cs
- UserControlFileEditor.cs
- AnimationLayer.cs
- DebugView.cs
- OutputCacheProfile.cs
- StringKeyFrameCollection.cs
- DisplayNameAttribute.cs
- SingletonConnectionReader.cs
- sortedlist.cs
- GestureRecognitionResult.cs
- GeneralTransform3DGroup.cs
- securitycriticaldataClass.cs
- XmlToDatasetMap.cs
- SendReply.cs
- PackageStore.cs
- SegmentTree.cs
- SvcMapFileLoader.cs
- HtmlInputReset.cs
- BinaryMessageEncodingBindingElement.cs
- CollectionBase.cs
- NamedPermissionSet.cs
- CodeTypeReference.cs
- Matrix3D.cs
- Win32Native.cs
- AttachedPropertyMethodSelector.cs
- HtmlToClrEventProxy.cs
- CompleteWizardStep.cs
- OdbcPermission.cs
- DataGridViewRow.cs
- FileNotFoundException.cs
- TextBoxLine.cs
- ModuleElement.cs
- ResetableIterator.cs
- StackSpiller.Temps.cs
- BidPrivateBase.cs
- TreeView.cs
- XmlEntityReference.cs
- InvokeFunc.cs
- StringFormat.cs
- StsCommunicationException.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- DataSourceControlBuilder.cs
- HtmlTitle.cs
- EdmToObjectNamespaceMap.cs
- PluralizationService.cs
- ListBoxDesigner.cs
- CopyAttributesAction.cs
- CompositeFontParser.cs
- GridViewCancelEditEventArgs.cs
- Image.cs
- MediaSystem.cs
- tooltip.cs
- TTSEvent.cs
- PathFigureCollection.cs
- TextBoxAutoCompleteSourceConverter.cs
- _NativeSSPI.cs
- coordinatorscratchpad.cs
- SqlTypeConverter.cs
- SerialPort.cs
- CapiSymmetricAlgorithm.cs
- ComponentManagerBroker.cs
- XmlIlVisitor.cs
- EditingContext.cs
- XmlSchemaCompilationSettings.cs