2016-08-03 10:59:49 +00:00
//------------------------------------------------------------------------------
// <copyright file="OleDbPermission.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
2017-08-21 15:34:15 +00:00
// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">Microsoft</owner>
2016-08-03 10:59:49 +00:00
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
using System.Collections ;
using System.Collections.Generic ;
using System.Data.Common ;
using System.Globalization ;
using System.Runtime.Serialization ;
using System.Security ;
using System.Security.Permissions ;
[Serializable]
public sealed class OleDbPermission : DBDataPermission {
private String [ ] _providerRestriction ; // should never be string[0]
private String _providers ;
[ Obsolete("OleDbPermission() has been deprecated. Use the OleDbPermission(PermissionState.None) constructor. http://go.microsoft.com/fwlink/?linkid=14202", true) ] // MDAC 86034
public OleDbPermission ( ) : this ( PermissionState . None ) {
}
public OleDbPermission ( PermissionState state ) : base ( state ) {
}
[ Obsolete("OleDbPermission(PermissionState state, Boolean allowBlankPassword) has been deprecated. Use the OleDbPermission(PermissionState.None) constructor. http://go.microsoft.com/fwlink/?linkid=14202", true) ] // MDAC 86034
public OleDbPermission ( PermissionState state , bool allowBlankPassword ) : this ( state ) {
AllowBlankPassword = allowBlankPassword ;
}
private OleDbPermission ( OleDbPermission permission ) : base ( permission ) { // for Copy
}
internal OleDbPermission ( OleDbPermissionAttribute permissionAttribute ) : base ( permissionAttribute ) { // for CreatePermission
}
internal OleDbPermission ( OleDbConnectionString constr ) : base ( constr ) { // for Open
if ( ( null = = constr ) | | constr . IsEmpty ) {
base . Add ( ADP . StrEmpty , ADP . StrEmpty , KeyRestrictionBehavior . AllowOnly ) ;
}
}
[System.ComponentModel.Browsable(false)]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[Obsolete("Provider property has been deprecated. Use the Add method. http://go.microsoft.com/fwlink/?linkid=14202")]
public string Provider {
get {
string providers = _providers ; // MDAC 83103
if ( null = = providers ) {
string [ ] restrictions = _providerRestriction ;
if ( null ! = restrictions ) {
if ( 0 < restrictions . Length ) {
providers = restrictions [ 0 ] ;
for ( int i = 1 ; i < restrictions . Length ; + + i ) {
providers + = ";" + restrictions [ i ] ;
}
}
}
}
return ( ( null ! = providers ) ? providers : ADP . StrEmpty ) ;
}
set { // MDAC 61263
string [ ] restrictions = null ;
if ( ! ADP . IsEmpty ( value ) ) {
restrictions = value . Split ( new char [ 1 ] { ';' } ) ;
restrictions = DBConnectionString . RemoveDuplicates ( restrictions ) ;
}
_providerRestriction = restrictions ;
_providers = value ;
}
}
override public IPermission Copy ( ) {
return new OleDbPermission ( this ) ;
}
}
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false )]
[Serializable]
public sealed class OleDbPermissionAttribute : DBDataPermissionAttribute {
private String _providers ;
public OleDbPermissionAttribute ( SecurityAction action ) : base ( action ) {
}
[System.ComponentModel.Browsable(false)]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[Obsolete("Provider property has been deprecated. Use the Add method. http://go.microsoft.com/fwlink/?linkid=14202")]
public String Provider {
get {
string providers = _providers ;
return ( ( null ! = providers ) ? providers : ADP . StrEmpty ) ;
}
set {
_providers = value ;
}
}
override public IPermission CreatePermission ( ) {
return new OleDbPermission ( this ) ;
}
}
}