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
- cookieexception.cs
- ScalarOps.cs
- ScriptResourceAttribute.cs
- Mapping.cs
- MultiBindingExpression.cs
- DeclaredTypeElement.cs
- LassoSelectionBehavior.cs
- DataGridRowClipboardEventArgs.cs
- UpdateProgress.cs
- PriorityItem.cs
- SchemaObjectWriter.cs
- DataGridAutoFormat.cs
- BindingExpressionBase.cs
- CatalogPartCollection.cs
- CalendarItem.cs
- CardSpaceSelector.cs
- SiteMapSection.cs
- ConditionalAttribute.cs
- HostDesigntimeLicenseContext.cs
- DependencyProperty.cs
- TypedElement.cs
- CreateUserWizard.cs
- MergeLocalizationDirectives.cs
- GradientSpreadMethodValidation.cs
- GPPOINT.cs
- PageRouteHandler.cs
- PathStreamGeometryContext.cs
- SiblingIterators.cs
- TransformDescriptor.cs
- ColorAnimation.cs
- Attribute.cs
- QueryCacheManager.cs
- FeatureSupport.cs
- TableTextElementCollectionInternal.cs
- EventOpcode.cs
- MethodImplAttribute.cs
- Rule.cs
- FrameworkElement.cs
- QilTypeChecker.cs
- ExpressionBindings.cs
- RefType.cs
- SafeEventLogWriteHandle.cs
- ToolStripItemClickedEventArgs.cs
- HtmlControl.cs
- DbProviderFactory.cs
- TemplateInstanceAttribute.cs
- WmlObjectListAdapter.cs
- Int32.cs
- XmlEncoding.cs
- SystemWebSectionGroup.cs
- XmlChoiceIdentifierAttribute.cs
- LocatorBase.cs
- ToolStripCollectionEditor.cs
- SafeArrayRankMismatchException.cs
- ScriptingJsonSerializationSection.cs
- BindingCompleteEventArgs.cs
- HttpHandlerAction.cs
- TraceListeners.cs
- MemberExpressionHelper.cs
- TypeNameHelper.cs
- SingleAnimationUsingKeyFrames.cs
- CaseInsensitiveHashCodeProvider.cs
- ObjectKeyFrameCollection.cs
- cookie.cs
- TraceUtils.cs
- WindowsFormsHostPropertyMap.cs
- BinaryObjectInfo.cs
- DrawListViewColumnHeaderEventArgs.cs
- StyleSelector.cs
- UncommonField.cs
- DrawTreeNodeEventArgs.cs
- XslCompiledTransform.cs
- SpeechSynthesizer.cs
- TextSimpleMarkerProperties.cs
- EpmContentDeSerializerBase.cs
- FixedSchema.cs
- JavaScriptObjectDeserializer.cs
- DefaultTraceListener.cs
- RTLAwareMessageBox.cs
- ConfigurationPropertyCollection.cs
- JsonUriDataContract.cs
- Visual3DCollection.cs
- SplineQuaternionKeyFrame.cs
- SecurityElement.cs
- ReverseInheritProperty.cs
- Mouse.cs
- DbBuffer.cs
- Geometry3D.cs
- TypeForwardedToAttribute.cs
- MarkedHighlightComponent.cs
- ConfigsHelper.cs
- ObjectManager.cs
- AnimationClockResource.cs
- ConstructorBuilder.cs
- DecimalConverter.cs
- TextTreeTextBlock.cs
- wgx_sdk_version.cs
- ToolStripButton.cs
- RangeContentEnumerator.cs
- DataTableClearEvent.cs