1 //------------------------------------------------------------------------------
2 // <copyright file="OdbcPermission.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 // <owner current="true" primary="true">Microsoft</owner>
6 // <owner current="true" primary="false">Microsoft</owner>
7 //------------------------------------------------------------------------------
8 namespace System.Data.Odbc {
11 using System.Collections;
13 using System.Data.Common;
14 using System.Diagnostics;
15 using System.Runtime.Serialization;
16 using System.Security;
17 using System.Security.Permissions;
20 public sealed class OdbcPermission : DBDataPermission {
22 [ Obsolete("OdbcPermission() has been deprecated. Use the OdbcPermission(PermissionState.None) constructor. http://go.microsoft.com/fwlink/?linkid=14202", true) ] // MDAC 86034
23 public OdbcPermission() : this(PermissionState.None) {
26 public OdbcPermission(PermissionState state) : base(state) {
29 [ Obsolete("OdbcPermission(PermissionState state, Boolean allowBlankPassword) has been deprecated. Use the OdbcPermission(PermissionState.None) constructor. http://go.microsoft.com/fwlink/?linkid=14202", true) ] // MDAC 86034
30 public OdbcPermission(PermissionState state, bool allowBlankPassword) : this(state) {
31 AllowBlankPassword = allowBlankPassword;
34 private OdbcPermission(OdbcPermission permission) : base(permission) { // for Copy
37 internal OdbcPermission(OdbcPermissionAttribute permissionAttribute) : base(permissionAttribute) { // for CreatePermission
40 internal OdbcPermission(OdbcConnectionString constr) : base(constr) { // for Open
41 if ((null == constr) || constr.IsEmpty) {
42 base.Add(ADP.StrEmpty, ADP.StrEmpty, KeyRestrictionBehavior.AllowOnly);
46 public override void Add(string connectionString, string restrictions, KeyRestrictionBehavior behavior) {
47 DBConnectionString constr = new DBConnectionString(connectionString, restrictions, behavior, null, true);
48 AddPermissionEntry(constr);
51 override public IPermission Copy () {
52 return new OdbcPermission(this);
56 [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false )]
58 public sealed class OdbcPermissionAttribute : DBDataPermissionAttribute {
60 public OdbcPermissionAttribute(SecurityAction action) : base(action) {
63 override public IPermission CreatePermission() {
64 return new OdbcPermission(this);