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
- Rules.cs
- ControlBindingsCollection.cs
- DesignTimeParseData.cs
- XmlSchemaAttribute.cs
- DefaultWorkflowTransactionService.cs
- XmlDocumentType.cs
- DataGridViewComboBoxEditingControl.cs
- XmlSerializationGeneratedCode.cs
- ColorConvertedBitmap.cs
- PictureBox.cs
- ReadWriteObjectLock.cs
- SmiEventStream.cs
- HttpRuntimeSection.cs
- XmlUrlResolver.cs
- AutoGeneratedFieldProperties.cs
- Itemizer.cs
- QuaternionAnimationUsingKeyFrames.cs
- MDIWindowDialog.cs
- SqlMethods.cs
- PartialClassGenerationTaskInternal.cs
- ObjectKeyFrameCollection.cs
- DocumentGridPage.cs
- Column.cs
- PolyLineSegment.cs
- Attributes.cs
- IdleTimeoutMonitor.cs
- Storyboard.cs
- PenLineJoinValidation.cs
- SQLSingleStorage.cs
- SqlGenericUtil.cs
- Container.cs
- UIElementCollection.cs
- ToolStripDropDownClosedEventArgs.cs
- RightNameExpirationInfoPair.cs
- Page.cs
- IdleTimeoutMonitor.cs
- BaseResourcesBuildProvider.cs
- AdapterDictionary.cs
- EmissiveMaterial.cs
- dataobject.cs
- FontCacheLogic.cs
- PathNode.cs
- EditorBrowsableAttribute.cs
- TreeNodeCollection.cs
- StateManagedCollection.cs
- HScrollProperties.cs
- SqlErrorCollection.cs
- MetafileEditor.cs
- ActivityBindForm.cs
- GuidelineCollection.cs
- TypedAsyncResult.cs
- SignatureHelper.cs
- login.cs
- cryptoapiTransform.cs
- DateTimeFormatInfo.cs
- OrthographicCamera.cs
- TreeNodeConverter.cs
- XmlSchemaRedefine.cs
- DecimalConstantAttribute.cs
- DelegatingTypeDescriptionProvider.cs
- StringConverter.cs
- ColumnMapTranslator.cs
- EntityClientCacheKey.cs
- MemoryStream.cs
- HttpHostedTransportConfiguration.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- RouteParameter.cs
- CodeGeneratorOptions.cs
- BooleanToVisibilityConverter.cs
- WebServiceMethodData.cs
- CodeCatchClauseCollection.cs
- FlowDocumentFormatter.cs
- CodeExpressionStatement.cs
- ActivityDefaults.cs
- VSWCFServiceContractGenerator.cs
- InputGestureCollection.cs
- BitmapEffectDrawingContent.cs
- DropDownList.cs
- FieldAccessException.cs
- IFlowDocumentViewer.cs
- PersonalizationState.cs
- DataStorage.cs
- DataBinder.cs
- RepeatBehaviorConverter.cs
- MemberAccessException.cs
- WebServiceMethodData.cs
- WorkflowIdleBehavior.cs
- HighlightVisual.cs
- PersistenceParticipant.cs
- EventManager.cs
- XmlSchemaException.cs
- CharEnumerator.cs
- ColorPalette.cs
- SqlFacetAttribute.cs
- ScriptingProfileServiceSection.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- CharacterString.cs
- KeyNotFoundException.cs
- CommonRemoteMemoryBlock.cs
- FileRegion.cs