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
- FtpRequestCacheValidator.cs
- OleAutBinder.cs
- ClientViaElement.cs
- login.cs
- DictionarySectionHandler.cs
- CorrelationScope.cs
- HostSecurityManager.cs
- OleDbConnectionFactory.cs
- Thumb.cs
- StateChangeEvent.cs
- AttributeSetAction.cs
- ContentOperations.cs
- Oid.cs
- Misc.cs
- WindowsSysHeader.cs
- CodeAccessSecurityEngine.cs
- GeneralTransformCollection.cs
- IsolatedStorageFilePermission.cs
- ServiceThrottlingBehavior.cs
- MultiSelectRootGridEntry.cs
- UmAlQuraCalendar.cs
- SqlConnectionPoolGroupProviderInfo.cs
- TableColumn.cs
- MemberRelationshipService.cs
- TriggerActionCollection.cs
- DPCustomTypeDescriptor.cs
- DoubleKeyFrameCollection.cs
- UmAlQuraCalendar.cs
- MobileUITypeEditor.cs
- RowType.cs
- PropertyPathWorker.cs
- HandleExceptionArgs.cs
- RawStylusInputCustomDataList.cs
- SmtpFailedRecipientsException.cs
- BamlResourceContent.cs
- SafePointer.cs
- XmlMtomReader.cs
- BamlLocalizableResource.cs
- InkPresenterAutomationPeer.cs
- parserscommon.cs
- ComponentEvent.cs
- messageonlyhwndwrapper.cs
- ObjectDataSourceFilteringEventArgs.cs
- Point3DCollection.cs
- FieldTemplateUserControl.cs
- TypedRowGenerator.cs
- MachineKeySection.cs
- ClientSettings.cs
- ListSortDescription.cs
- EffectiveValueEntry.cs
- SmtpNegotiateAuthenticationModule.cs
- NodeLabelEditEvent.cs
- SocketInformation.cs
- DataSourceView.cs
- KeyedCollection.cs
- IMembershipProvider.cs
- NavigatorInput.cs
- HttpInputStream.cs
- SqlUserDefinedTypeAttribute.cs
- PropertyGridEditorPart.cs
- NodeLabelEditEvent.cs
- FrameworkTemplate.cs
- PropertyGridDesigner.cs
- AsyncPostBackErrorEventArgs.cs
- ComplusEndpointConfigContainer.cs
- ObjectComplexPropertyMapping.cs
- PersonalizationStateInfo.cs
- CodeIdentifier.cs
- ToolStripRenderer.cs
- CodeCatchClause.cs
- CommandBindingCollection.cs
- InvokeSchedule.cs
- SafeViewOfFileHandle.cs
- _HelperAsyncResults.cs
- ListControlConvertEventArgs.cs
- ProgressBar.cs
- ImageField.cs
- MultiSelector.cs
- CngUIPolicy.cs
- FullTrustAssemblyCollection.cs
- XmlSchemaRedefine.cs
- PersistenceMetadataNamespace.cs
- AssemblyCollection.cs
- RIPEMD160Managed.cs
- Assert.cs
- DesignerActionItemCollection.cs
- SendKeys.cs
- GridViewEditEventArgs.cs
- TextEndOfParagraph.cs
- PreloadedPackages.cs
- RoleGroupCollection.cs
- COM2ExtendedUITypeEditor.cs
- SqlStatistics.cs
- MemberAssignment.cs
- TrackBar.cs
- ReflectionPermission.cs
- EdmError.cs
- RSAPKCS1SignatureDeformatter.cs
- _Events.cs
- OutputCacheSettingsSection.cs