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
- DesignTimeTemplateParser.cs
- CapabilitiesSection.cs
- TearOffProxy.cs
- DataGridViewDataConnection.cs
- ControlBuilderAttribute.cs
- DataRecord.cs
- WebPartTransformerAttribute.cs
- TemplateColumn.cs
- XmlnsCache.cs
- UidManager.cs
- Int32Storage.cs
- PropertyGroupDescription.cs
- CustomAssemblyResolver.cs
- FunctionDetailsReader.cs
- ContextMenu.cs
- JapaneseCalendar.cs
- ThreadStartException.cs
- PageCopyCount.cs
- ToolboxComponentsCreatedEventArgs.cs
- WebPartConnectionsCancelEventArgs.cs
- HopperCache.cs
- Enlistment.cs
- ByteAnimationUsingKeyFrames.cs
- Utils.cs
- ListDataHelper.cs
- URLAttribute.cs
- CodeGroup.cs
- MergeExecutor.cs
- RegionData.cs
- TreeNodeSelectionProcessor.cs
- UrlRoutingModule.cs
- ScriptBehaviorDescriptor.cs
- DbBuffer.cs
- CookielessHelper.cs
- ManifestResourceInfo.cs
- OrCondition.cs
- SemanticValue.cs
- InitiatorSessionSymmetricMessageSecurityProtocol.cs
- RuntimeConfigLKG.cs
- InvokeWebService.cs
- HttpModulesSection.cs
- UnsafeNativeMethods.cs
- DesignerActionItemCollection.cs
- BindableAttribute.cs
- AnnotationStore.cs
- CriticalExceptions.cs
- ConnectionManagementElement.cs
- JsonFaultDetail.cs
- Resources.Designer.cs
- CommandConverter.cs
- SecurityUtils.cs
- IBuiltInEvidence.cs
- CurrentChangedEventManager.cs
- StringDictionaryCodeDomSerializer.cs
- GridViewItemAutomationPeer.cs
- SoapHeaderException.cs
- MDIControlStrip.cs
- ContainerFilterService.cs
- TemplateXamlParser.cs
- FrameworkPropertyMetadata.cs
- CalendarTable.cs
- AnnotationComponentChooser.cs
- FaultDesigner.cs
- ServiceChannelFactory.cs
- XsltConvert.cs
- DecoderNLS.cs
- _AutoWebProxyScriptWrapper.cs
- Html32TextWriter.cs
- MenuEventArgs.cs
- BulletedList.cs
- OrderToken.cs
- InputQueue.cs
- AttributeEmitter.cs
- CursorInteropHelper.cs
- FlowDocumentReaderAutomationPeer.cs
- XmlSchemaDatatype.cs
- SecurityState.cs
- IndentTextWriter.cs
- EventToken.cs
- DependentList.cs
- RowUpdatingEventArgs.cs
- TextEditorSpelling.cs
- BaseProcessProtocolHandler.cs
- TemplateComponentConnector.cs
- Utils.cs
- MD5.cs
- PageContent.cs
- BaseServiceProvider.cs
- InProcStateClientManager.cs
- SerializationObjectManager.cs
- SchemaMapping.cs
- Paragraph.cs
- HttpModuleCollection.cs
- __ConsoleStream.cs
- SystemUnicastIPAddressInformation.cs
- MSHTMLHost.cs
- MaterialGroup.cs
- DelimitedListTraceListener.cs
- DataGridCommandEventArgs.cs
- GeneralTransform2DTo3DTo2D.cs