d1560e285a7cee917a13411891820440db4a5c34
[mono.git] / mcs / class / referencesource / System.Data / System / Data / Odbc / OdbcPermission.cs
1 //------------------------------------------------------------------------------
2 // <copyright file="OdbcPermission.cs" company="Microsoft">
3 //      Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>
5 // <owner current="true" primary="true">Microsoft</owner>
6 // <owner current="true" primary="false">Microsoft</owner>
7 //------------------------------------------------------------------------------
8 namespace System.Data.Odbc {
9
10     using System;
11     using System.Collections;
12     using System.Data;
13     using System.Data.Common;
14     using System.Diagnostics;
15     using System.Runtime.Serialization;
16     using System.Security;
17     using System.Security.Permissions;
18
19     [Serializable] 
20     public sealed class OdbcPermission :  DBDataPermission {
21
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) {
24         }
25
26         public OdbcPermission(PermissionState state) : base(state) {
27         }
28
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;
32         }
33
34         private OdbcPermission(OdbcPermission permission) : base(permission) { // for Copy
35         }
36
37         internal OdbcPermission(OdbcPermissionAttribute permissionAttribute) : base(permissionAttribute) { // for CreatePermission
38         }
39
40         internal OdbcPermission(OdbcConnectionString constr) : base(constr) { // for Open
41             if ((null == constr) || constr.IsEmpty) {
42                 base.Add(ADP.StrEmpty, ADP.StrEmpty, KeyRestrictionBehavior.AllowOnly);
43             }
44         }
45
46         public override void Add(string connectionString, string restrictions, KeyRestrictionBehavior behavior) {
47             DBConnectionString constr = new DBConnectionString(connectionString, restrictions, behavior, null, true);
48             AddPermissionEntry(constr);
49         }
50
51         override public IPermission Copy () {
52             return new OdbcPermission(this);
53         }
54     }
55
56     [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false )]
57     [Serializable] 
58     public sealed class OdbcPermissionAttribute : DBDataPermissionAttribute {
59
60         public OdbcPermissionAttribute(SecurityAction action) : base(action) {
61         }
62
63         override public IPermission CreatePermission() {
64             return new OdbcPermission(this);
65         }
66     }
67 }