Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / ClientServices / ClientFormsIdentity.cs / 1305376 / ClientFormsIdentity.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.ClientServices { using System; using System.Net; using System.Security.Principal; using System.Runtime.InteropServices; using System.Security; using System.Web.Security; using System.Diagnostics.CodeAnalysis; public class ClientFormsIdentity : IIdentity, IDisposable { public string Name { get { return _Name; }} public bool IsAuthenticated { get { return _IsAuthenticated; }} public string AuthenticationType { get { return _AuthenticationType; } } public CookieContainer AuthenticationCookies { get { return _AuthenticationCookies; } } public MembershipProvider Provider { get { return _Provider; } } public ClientFormsIdentity(string name, string password, MembershipProvider provider, string authenticationType, bool isAuthenticated, CookieContainer authenticationCookies) { _Name = name; _AuthenticationType = authenticationType; _IsAuthenticated = isAuthenticated; _AuthenticationCookies = authenticationCookies; _Password = GetSecureStringFromString(password); _Provider = provider; } public void RevalidateUser() { if (_Disposed) { throw new ObjectDisposedException(this.GetType().FullName); } _Provider.ValidateUser(_Name, GetStringFromSecureString(_Password)); } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (disposing) { if (_Password != null) { _Password.Dispose(); } } _Disposed = true; } private string _Name; private bool _IsAuthenticated; private string _AuthenticationType; private CookieContainer _AuthenticationCookies; private SecureString _Password; private MembershipProvider _Provider; private bool _Disposed; private static SecureString GetSecureStringFromString(string password) { char[] passwordChars = password.ToCharArray(); SecureString ss = new SecureString(); for (int iter = 0; iter < passwordChars.Length; iter++) ss.AppendChar(passwordChars[iter]); ss.MakeReadOnly(); return ss; } [SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Justification="Reviewed and approved by feature crew")] [SecuritySafeCritical] private static string GetStringFromSecureString(SecureString securePass) { IntPtr bstr = IntPtr.Zero; try { bstr = Marshal.SecureStringToBSTR(securePass); return Marshal.PtrToStringBSTR(bstr); } finally { if (bstr != IntPtr.Zero) Marshal.FreeBSTR(bstr); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.ClientServices { using System; using System.Net; using System.Security.Principal; using System.Runtime.InteropServices; using System.Security; using System.Web.Security; using System.Diagnostics.CodeAnalysis; public class ClientFormsIdentity : IIdentity, IDisposable { public string Name { get { return _Name; }} public bool IsAuthenticated { get { return _IsAuthenticated; }} public string AuthenticationType { get { return _AuthenticationType; } } public CookieContainer AuthenticationCookies { get { return _AuthenticationCookies; } } public MembershipProvider Provider { get { return _Provider; } } public ClientFormsIdentity(string name, string password, MembershipProvider provider, string authenticationType, bool isAuthenticated, CookieContainer authenticationCookies) { _Name = name; _AuthenticationType = authenticationType; _IsAuthenticated = isAuthenticated; _AuthenticationCookies = authenticationCookies; _Password = GetSecureStringFromString(password); _Provider = provider; } public void RevalidateUser() { if (_Disposed) { throw new ObjectDisposedException(this.GetType().FullName); } _Provider.ValidateUser(_Name, GetStringFromSecureString(_Password)); } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (disposing) { if (_Password != null) { _Password.Dispose(); } } _Disposed = true; } private string _Name; private bool _IsAuthenticated; private string _AuthenticationType; private CookieContainer _AuthenticationCookies; private SecureString _Password; private MembershipProvider _Provider; private bool _Disposed; private static SecureString GetSecureStringFromString(string password) { char[] passwordChars = password.ToCharArray(); SecureString ss = new SecureString(); for (int iter = 0; iter < passwordChars.Length; iter++) ss.AppendChar(passwordChars[iter]); ss.MakeReadOnly(); return ss; } [SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Justification="Reviewed and approved by feature crew")] [SecuritySafeCritical] private static string GetStringFromSecureString(SecureString securePass) { IntPtr bstr = IntPtr.Zero; try { bstr = Marshal.SecureStringToBSTR(securePass); return Marshal.PtrToStringBSTR(bstr); } finally { if (bstr != IntPtr.Zero) Marshal.FreeBSTR(bstr); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StackSpiller.Generated.cs
- HwndHostAutomationPeer.cs
- _LoggingObject.cs
- PackageRelationshipCollection.cs
- Brush.cs
- MultiByteCodec.cs
- ClosureBinding.cs
- BaseTemplateCodeDomTreeGenerator.cs
- ValidationHelper.cs
- AsymmetricAlgorithm.cs
- DataGridViewIntLinkedList.cs
- ParameterToken.cs
- IsolatedStorageFile.cs
- GridSplitter.cs
- ProjectionNode.cs
- ExpressionValueEditor.cs
- RadioButtonBaseAdapter.cs
- RotateTransform3D.cs
- PbrsForward.cs
- HttpCachePolicyElement.cs
- IdentityNotMappedException.cs
- ToolBarButton.cs
- RoutedPropertyChangedEventArgs.cs
- XmlNullResolver.cs
- ParallelTimeline.cs
- CryptoConfig.cs
- ExtensionDataObject.cs
- TableItemStyle.cs
- RayMeshGeometry3DHitTestResult.cs
- MemoryPressure.cs
- CodeTryCatchFinallyStatement.cs
- SharedConnectionInfo.cs
- XmlDataImplementation.cs
- ConfigurationLocationCollection.cs
- DescendentsWalkerBase.cs
- PopOutPanel.cs
- ObjectReferenceStack.cs
- LinqDataView.cs
- TextTreeObjectNode.cs
- UIElement3DAutomationPeer.cs
- sqlstateclientmanager.cs
- WebPartDescription.cs
- Queue.cs
- SubqueryRules.cs
- DecodeHelper.cs
- Int32Collection.cs
- XmlSchemas.cs
- RubberbandSelector.cs
- UpdateTranslator.cs
- WmpBitmapDecoder.cs
- Screen.cs
- DataGrid.cs
- ImageFormat.cs
- EventLogWatcher.cs
- _ListenerAsyncResult.cs
- SByteConverter.cs
- TouchFrameEventArgs.cs
- RegistrySecurity.cs
- DragDrop.cs
- QilPatternFactory.cs
- StickyNote.cs
- EntityDataSourceEntityTypeFilterItem.cs
- ConfigurationErrorsException.cs
- ControlAdapter.cs
- GeometryValueSerializer.cs
- AssemblyFilter.cs
- ToolStripDropDown.cs
- DataStreamFromComStream.cs
- GridView.cs
- BitmapDecoder.cs
- BufferModeSettings.cs
- TraceHwndHost.cs
- PointAnimationClockResource.cs
- ZipIOLocalFileHeader.cs
- FontDialog.cs
- ThrowHelper.cs
- QilStrConcat.cs
- ShaderRenderModeValidation.cs
- Interlocked.cs
- PageCatalogPart.cs
- OleDbInfoMessageEvent.cs
- ToolBar.cs
- DesignTimeParseData.cs
- CheckBoxBaseAdapter.cs
- TraceHandlerErrorFormatter.cs
- DBConnection.cs
- BitmapMetadata.cs
- RouteCollection.cs
- CredentialCache.cs
- _RequestCacheProtocol.cs
- TypeDescriptor.cs
- Point.cs
- SecureEnvironment.cs
- DataServiceQueryException.cs
- HtmlEncodedRawTextWriter.cs
- entitydatasourceentitysetnameconverter.cs
- PartitionResolver.cs
- InProcStateClientManager.cs
- CommandBinding.cs
- XmlSchemaAttributeGroupRef.cs