Updates referencesource to .NET 4.7
[mono.git] / mcs / class / referencesource / System.Data / System / Data / SqlClient / SqlClientPermission.cs
1 //------------------------------------------------------------------------------
2 // <copyright file="SqlClientPermission.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
9 namespace System.Data.SqlClient {
10
11     using System.Collections;
12     using System.Data.Common;
13     using System.Runtime.Serialization;
14     using System.Security;
15     using System.Security.Permissions;
16
17     [Serializable] 
18     public sealed class SqlClientPermission :  DBDataPermission {
19
20         [ Obsolete("SqlClientPermission() has been deprecated.  Use the SqlClientPermission(PermissionState.None) constructor.  http://go.microsoft.com/fwlink/?linkid=14202", true) ] // MDAC 86034
21         public SqlClientPermission() : this(PermissionState.None) {
22         }
23
24         public SqlClientPermission(PermissionState state) : base(state) {
25         }
26
27         [ Obsolete("SqlClientPermission(PermissionState state, Boolean allowBlankPassword) has been deprecated.  Use the SqlClientPermission(PermissionState.None) constructor.  http://go.microsoft.com/fwlink/?linkid=14202", true) ] // MDAC 86034
28         public SqlClientPermission(PermissionState state, bool allowBlankPassword) : this(state) {
29             AllowBlankPassword = allowBlankPassword;
30         }
31
32         private SqlClientPermission(SqlClientPermission permission) : base(permission) { // for Copy
33         }
34
35         internal SqlClientPermission(SqlClientPermissionAttribute permissionAttribute) : base(permissionAttribute) { // for CreatePermission
36         }
37
38         internal SqlClientPermission(SqlConnectionString constr) : base(constr) { // for Open
39             if ((null == constr) || constr.IsEmpty) {
40                 base.Add(ADP.StrEmpty, ADP.StrEmpty, KeyRestrictionBehavior.AllowOnly);
41             }
42         }
43
44         public override void Add(string connectionString, string restrictions, KeyRestrictionBehavior behavior) {
45             DBConnectionString constr = new DBConnectionString(connectionString, restrictions, behavior, SqlConnectionString.GetParseSynonyms(), false);
46             AddPermissionEntry(constr);
47         }
48
49         override public IPermission Copy () {
50             return new SqlClientPermission(this);
51         }
52     }
53
54     [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false )]
55     [Serializable] 
56     public sealed class SqlClientPermissionAttribute : DBDataPermissionAttribute {
57
58         public SqlClientPermissionAttribute(SecurityAction action) : base(action) {
59         }
60
61         override public IPermission CreatePermission() {
62             return new SqlClientPermission(this);
63         }
64     }
65 }