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
- UnmanagedMarshal.cs
- TextServicesPropertyRanges.cs
- FixedSOMTextRun.cs
- MobileRedirect.cs
- IdentityNotMappedException.cs
- MatrixCamera.cs
- DataGridCommandEventArgs.cs
- OuterGlowBitmapEffect.cs
- CallSiteHelpers.cs
- AssemblyNameProxy.cs
- ContextMenu.cs
- DataObjectMethodAttribute.cs
- UnsafeNativeMethods.cs
- UnhandledExceptionEventArgs.cs
- UpdatableWrapper.cs
- Transactions.cs
- UInt32Converter.cs
- PeerOutputChannel.cs
- ExpressionValueEditor.cs
- _SslStream.cs
- HyperLinkColumn.cs
- BuildManager.cs
- WebConvert.cs
- DocumentXmlWriter.cs
- DataMemberConverter.cs
- SslSecurityTokenParameters.cs
- FontFaceLayoutInfo.cs
- SimplePropertyEntry.cs
- ServiceContractViewControl.Designer.cs
- XamlParser.cs
- AnnotationAuthorChangedEventArgs.cs
- WebPartDescription.cs
- StatusBar.cs
- Clipboard.cs
- EqualityComparer.cs
- WithStatement.cs
- ColumnReorderedEventArgs.cs
- CodeCommentStatementCollection.cs
- ScaleTransform.cs
- PageAdapter.cs
- XPathSelectionIterator.cs
- DispatcherExceptionFilterEventArgs.cs
- LogEntryDeserializer.cs
- Figure.cs
- XmlLangPropertyAttribute.cs
- ConnectionManager.cs
- ImageBrush.cs
- ValidationError.cs
- Win32KeyboardDevice.cs
- WorkflowRuntimeElement.cs
- SystemDiagnosticsSection.cs
- ManagementDateTime.cs
- basecomparevalidator.cs
- CollectionViewGroup.cs
- ParserContext.cs
- SafePipeHandle.cs
- Expression.cs
- BamlStream.cs
- ContextDataSourceView.cs
- ServiceManager.cs
- MsmqNonTransactedPoisonHandler.cs
- SrgsElementList.cs
- TableHeaderCell.cs
- InfiniteTimeSpanConverter.cs
- CustomSignedXml.cs
- ProfileSection.cs
- GridProviderWrapper.cs
- RepeatBehavior.cs
- SimpleWorkerRequest.cs
- DataGridViewCellValueEventArgs.cs
- ColumnMap.cs
- TraceSwitch.cs
- Vector3DCollection.cs
- SendKeys.cs
- KnownBoxes.cs
- GradientBrush.cs
- DesignerCategoryAttribute.cs
- TemplatedWizardStep.cs
- SqlDataSourceConfigureFilterForm.cs
- XmlTextAttribute.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- BitArray.cs
- DirectionalLight.cs
- DemultiplexingDispatchMessageFormatter.cs
- ToolStripSeparatorRenderEventArgs.cs
- ControlCodeDomSerializer.cs
- ErasingStroke.cs
- WorkflowTimerService.cs
- ActivityTypeResolver.xaml.cs
- Panel.cs
- TraceLevelStore.cs
- FormatConvertedBitmap.cs
- AttributeData.cs
- XmlTypeAttribute.cs
- XmlSchemaObject.cs
- ProfileManager.cs
- ScriptControl.cs
- RuleInfoComparer.cs
- WindowsClientCredential.cs
- SiteMapHierarchicalDataSourceView.cs