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
- BaseDataList.cs
- OperationBehaviorAttribute.cs
- BindingUtils.cs
- Error.cs
- NetworkInformationException.cs
- IconConverter.cs
- LinqToSqlWrapper.cs
- GeneralTransformGroup.cs
- DataGridViewTextBoxCell.cs
- BuilderInfo.cs
- PatternMatcher.cs
- CounterSample.cs
- LinkLabel.cs
- DataComponentMethodGenerator.cs
- ZipIORawDataFileBlock.cs
- ConcurrencyMode.cs
- GreaterThan.cs
- KeySplineConverter.cs
- PackagingUtilities.cs
- TraceLevelStore.cs
- MSAANativeProvider.cs
- ServiceModelPerformanceCounters.cs
- MemoryFailPoint.cs
- EnumerableRowCollectionExtensions.cs
- HtmlForm.cs
- IsolatedStorageFile.cs
- TargetPerspective.cs
- PriorityBindingExpression.cs
- GenericQueueSurrogate.cs
- MissingSatelliteAssemblyException.cs
- ClipboardData.cs
- NodeLabelEditEvent.cs
- ProcessMonitor.cs
- _UriSyntax.cs
- DataTableClearEvent.cs
- ConditionBrowserDialog.cs
- AsymmetricSignatureDeformatter.cs
- FileDataSourceCache.cs
- SettingsContext.cs
- PointCollection.cs
- SingleConverter.cs
- XmlElementList.cs
- XPathMessageFilterElementComparer.cs
- ApplicationDirectoryMembershipCondition.cs
- MetadataException.cs
- BitConverter.cs
- clipboard.cs
- QilList.cs
- SaveFileDialog.cs
- SystemInformation.cs
- ClassGenerator.cs
- QuaternionConverter.cs
- AutomationEvent.cs
- IconBitmapDecoder.cs
- GACIdentityPermission.cs
- HttpCookiesSection.cs
- UserControl.cs
- InternalEnumValidator.cs
- Matrix.cs
- TextEndOfSegment.cs
- remotingproxy.cs
- MsmqChannelListenerBase.cs
- DataGridViewDataConnection.cs
- TabItemWrapperAutomationPeer.cs
- StateManagedCollection.cs
- FontFamily.cs
- MaskDescriptor.cs
- ToolStripOverflowButton.cs
- HttpModuleAction.cs
- HierarchicalDataSourceConverter.cs
- BlobPersonalizationState.cs
- ParallelSeparator.xaml.cs
- EmptyReadOnlyDictionaryInternal.cs
- Exception.cs
- AnchoredBlock.cs
- TextDecoration.cs
- Fx.cs
- TemplateBindingExpressionConverter.cs
- SafeFileMapViewHandle.cs
- XhtmlConformanceSection.cs
- TableCellCollection.cs
- PagesSection.cs
- WindowsFormsHelpers.cs
- RtfToXamlLexer.cs
- DynamicDocumentPaginator.cs
- CachedPathData.cs
- AuthenticatingEventArgs.cs
- HwndMouseInputProvider.cs
- DataServiceEntityAttribute.cs
- StringUtil.cs
- OracleInfoMessageEventArgs.cs
- SoapMessage.cs
- MetadataArtifactLoaderFile.cs
- TextSearch.cs
- IsolatedStorageFile.cs
- MethodBuilderInstantiation.cs
- SpeechRecognizer.cs
- GenericTextProperties.cs
- BrowserCapabilitiesCodeGenerator.cs
- RowCache.cs