Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit df5bb8e

Browse files
Dilip Ojhabartonjs
authored andcommitted
Moving System.Security.Permissions Types from WPF
* moved wpf types * added new types to ref * addressed comments * addressing comments * addressed more comments * addressed comment * updated ref * added typeforwardedfrom and addressed comment * updated publickeytoken * added tests, addressed comments * added mediapermissionattribute test
1 parent e1eb561 commit df5bb8e

File tree

10 files changed

+389
-3
lines changed

10 files changed

+389
-3
lines changed

src/System.Security.Permissions/ref/System.Security.Permissions.cs

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,6 +1040,55 @@ public enum KeyContainerPermissionFlags
10401040
ChangeAcl = 8192,
10411041
AllFlags = 13111,
10421042
}
1043+
public sealed partial class MediaPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
1044+
{
1045+
public MediaPermission() { }
1046+
public MediaPermission(System.Security.Permissions.MediaPermissionAudio permissionAudio) { }
1047+
public MediaPermission(System.Security.Permissions.MediaPermissionAudio permissionAudio, System.Security.Permissions.MediaPermissionVideo permissionVideo, System.Security.Permissions.MediaPermissionImage permissionImage) { }
1048+
public MediaPermission(System.Security.Permissions.MediaPermissionImage permissionImage) { }
1049+
public MediaPermission(System.Security.Permissions.MediaPermissionVideo permissionVideo) { }
1050+
public MediaPermission(System.Security.Permissions.PermissionState state) { }
1051+
public System.Security.Permissions.MediaPermissionAudio Audio { get { throw null; } }
1052+
public System.Security.Permissions.MediaPermissionImage Image { get { throw null; } }
1053+
public System.Security.Permissions.MediaPermissionVideo Video { get { throw null; } }
1054+
public override System.Security.IPermission Copy() { throw null; }
1055+
public override void FromXml(System.Security.SecurityElement securityElement) { }
1056+
public override System.Security.IPermission Intersect(System.Security.IPermission target) { throw null; }
1057+
public override bool IsSubsetOf(System.Security.IPermission target) { throw null; }
1058+
public bool IsUnrestricted() { throw null; }
1059+
public override System.Security.SecurityElement ToXml() { throw null; }
1060+
public override System.Security.IPermission Union(System.Security.IPermission target) { throw null; }
1061+
}
1062+
[System.AttributeUsageAttribute(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple = true, Inherited = false)]
1063+
public sealed partial class MediaPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
1064+
{
1065+
public MediaPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) { }
1066+
public System.Security.Permissions.MediaPermissionAudio Audio { get { throw null; } set { } }
1067+
public System.Security.Permissions.MediaPermissionImage Image { get { throw null; } set { } }
1068+
public System.Security.Permissions.MediaPermissionVideo Video { get { throw null; } set { } }
1069+
public override System.Security.IPermission CreatePermission() { throw null; }
1070+
}
1071+
public enum MediaPermissionAudio
1072+
{
1073+
NoAudio = 0,
1074+
SiteOfOriginAudio = 1,
1075+
SafeAudio = 2,
1076+
AllAudio = 3,
1077+
}
1078+
public enum MediaPermissionImage
1079+
{
1080+
NoImage = 0,
1081+
SiteOfOriginImage = 1,
1082+
SafeImage = 2,
1083+
AllImage = 3,
1084+
}
1085+
public enum MediaPermissionVideo
1086+
{
1087+
NoVideo = 0,
1088+
SiteOfOriginVideo = 1,
1089+
SafeVideo = 2,
1090+
AllVideo = 3,
1091+
}
10431092
[System.AttributeUsageAttribute(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
10441093
public sealed partial class PermissionSetAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
10451094
{
@@ -1397,6 +1446,33 @@ public UrlIdentityPermissionAttribute(System.Security.Permissions.SecurityAction
13971446
public string Url { get { throw null; } set { } }
13981447
public override System.Security.IPermission CreatePermission() { throw null; }
13991448
}
1449+
public sealed partial class WebBrowserPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
1450+
{
1451+
public WebBrowserPermission() { }
1452+
public WebBrowserPermission(System.Security.Permissions.PermissionState state) { }
1453+
public WebBrowserPermission(System.Security.Permissions.WebBrowserPermissionLevel webBrowserPermissionLevel) { }
1454+
public System.Security.Permissions.WebBrowserPermissionLevel Level { get { throw null; } set { } }
1455+
public override System.Security.IPermission Copy() { throw null; }
1456+
public override void FromXml(System.Security.SecurityElement securityElement) { }
1457+
public override System.Security.IPermission Intersect(System.Security.IPermission target) { throw null; }
1458+
public override bool IsSubsetOf(System.Security.IPermission target) { throw null; }
1459+
public bool IsUnrestricted() { throw null; }
1460+
public override System.Security.SecurityElement ToXml() { throw null; }
1461+
public override System.Security.IPermission Union(System.Security.IPermission target) { throw null; }
1462+
}
1463+
[System.AttributeUsageAttribute(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple = true, Inherited = false)]
1464+
public sealed partial class WebBrowserPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
1465+
{
1466+
public WebBrowserPermissionAttribute(System.Security.Permissions.SecurityAction action) : base(default(System.Security.Permissions.SecurityAction)) { }
1467+
public System.Security.Permissions.WebBrowserPermissionLevel Level { get { throw null; } set { } }
1468+
public override System.Security.IPermission CreatePermission() { throw null; }
1469+
}
1470+
public enum WebBrowserPermissionLevel
1471+
{
1472+
None = 0,
1473+
Safe = 1,
1474+
Unrestricted = 2,
1475+
}
14001476
public sealed partial class ZoneIdentityPermission : System.Security.CodeAccessPermission
14011477
{
14021478
public ZoneIdentityPermission(System.Security.Permissions.PermissionState state) { }
@@ -2015,3 +2091,33 @@ public enum AspNetHostingPermissionLevel
20152091
Unrestricted = 600,
20162092
}
20172093
}
2094+
namespace System.Xaml.Permissions
2095+
{
2096+
public partial class XamlAccessLevel
2097+
{
2098+
internal XamlAccessLevel() { }
2099+
public System.Reflection.AssemblyName AssemblyAccessToAssemblyName { get { throw null; } }
2100+
public string PrivateAccessToTypeName { get { throw null; } }
2101+
public static System.Xaml.Permissions.XamlAccessLevel AssemblyAccessTo(System.Reflection.Assembly assembly) { throw null; }
2102+
public static System.Xaml.Permissions.XamlAccessLevel AssemblyAccessTo(System.Reflection.AssemblyName assemblyName) { throw null; }
2103+
public static System.Xaml.Permissions.XamlAccessLevel PrivateAccessTo(string assemblyQualifiedTypeName) { throw null; }
2104+
public static System.Xaml.Permissions.XamlAccessLevel PrivateAccessTo(System.Type type) { throw null; }
2105+
}
2106+
public sealed partial class XamlLoadPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
2107+
{
2108+
public XamlLoadPermission(System.Collections.Generic.IEnumerable<System.Xaml.Permissions.XamlAccessLevel> allowedAccess) { }
2109+
public XamlLoadPermission(System.Security.Permissions.PermissionState state) { }
2110+
public XamlLoadPermission(System.Xaml.Permissions.XamlAccessLevel allowedAccess) { }
2111+
public System.Collections.Generic.IList<System.Xaml.Permissions.XamlAccessLevel> AllowedAccess { get { throw null; } }
2112+
public override System.Security.IPermission Copy() { throw null; }
2113+
public override bool Equals(object obj) { throw null; }
2114+
public override void FromXml(System.Security.SecurityElement elem) { }
2115+
public override int GetHashCode() { throw null; }
2116+
public bool Includes(System.Xaml.Permissions.XamlAccessLevel requestedAccess) { throw null; }
2117+
public override System.Security.IPermission Intersect(System.Security.IPermission target) { throw null; }
2118+
public override bool IsSubsetOf(System.Security.IPermission target) { throw null; }
2119+
public bool IsUnrestricted() { throw null; }
2120+
public override System.Security.SecurityElement ToXml() { throw null; }
2121+
public override System.Security.IPermission Union(System.Security.IPermission other) { throw null; }
2122+
}
2123+
}

src/System.Security.Permissions/ref/System.Security.Permissions.csproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
<Reference Include="System.Security" />
2121
<Reference Include="System.ServiceProcess" />
2222
<Reference Include="System.Transactions" />
23+
<Reference Include="System.Xaml" />
24+
<Reference Include="WindowsBase" />
2325
</ItemGroup>
2426
<ItemGroup Condition="'$(TargetsNetFx)' != 'true'">
2527
<ProjectReference Include="..\..\System.Security.AccessControl\ref\System.Security.AccessControl.csproj" />
@@ -37,4 +39,4 @@
3739
<ProjectReference Include="..\..\System.Text.RegularExpressions\ref\System.Text.RegularExpressions.csproj" />
3840
<ProjectReference Include="..\..\System.Threading\ref\System.Threading.csproj" />
3941
</ItemGroup>
40-
</Project>
42+
</Project>

src/System.Security.Permissions/src/System.Security.Permissions.csproj

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
<Compile Include="System\Security\Permissions\KeyContainerPermissionAccessEntryEnumerator.cs" />
9090
<Compile Include="System\Security\Permissions\KeyContainerPermissionAttribute.cs" />
9191
<Compile Include="System\Security\Permissions\KeyContainerPermissionFlags.cs" />
92+
<Compile Include="System\Security\Permissions\MediaPermission.cs" />
9293
<Compile Include="System\Security\Permissions\PermissionSetAttribute.cs" />
9394
<Compile Include="System\Security\Permissions\PrincipalPermission.cs" />
9495
<Compile Include="System\Security\Permissions\PrincipalPermissionAttribute.cs" />
@@ -120,6 +121,7 @@
120121
<Compile Include="System\Security\Permissions\UIPermissionWindow.cs" />
121122
<Compile Include="System\Security\Permissions\UrlIdentityPermission.cs" />
122123
<Compile Include="System\Security\Permissions\UrlIdentityPermissionAttribute.cs" />
124+
<Compile Include="System\Security\Permissions\WebBrowserPermission.cs" />
123125
<Compile Include="System\Security\Permissions\ZoneIdentityPermission.cs" />
124126
<Compile Include="System\Security\Permissions\ZoneIdentityPermissionAttribute.cs" />
125127
<Compile Include="System\Security\Policy\AllMembershipCondition.cs" />
@@ -176,6 +178,8 @@
176178
<Compile Include="System\Web\AspNetHostingPermission.cs" />
177179
<Compile Include="System\Web\AspNetHostingPermissionAttribute.cs" />
178180
<Compile Include="System\Web\AspNetHostingPermissionLevel.cs" />
181+
<Compile Include="System\Xaml\Permissions\XamlAccessLevel.cs" />
182+
<Compile Include="System\Xaml\Permissions\XamlLoadPermission.cs" />
179183
</ItemGroup>
180184
<ItemGroup Condition="'$(TargetGroup)' == 'netstandard'">
181185
<Compile Include="$(CommonPath)\CoreLib\System\Security\IStackWalk.cs">
@@ -201,6 +205,8 @@
201205
<Reference Include="System.ServiceProcess" />
202206
<Reference Include="System.Transactions" />
203207
<Reference Include="System.Web" />
208+
<Reference Include="System.Xaml" />
209+
<Reference Include="WindowsBase" />
204210
</ItemGroup>
205211
<ItemGroup>
206212
<Reference Include="System.Security.AccessControl" />
@@ -222,4 +228,4 @@
222228
<Reference Include="System.Threading" />
223229
<Reference Include="System.Threading.Thread" />
224230
</ItemGroup>
225-
</Project>
231+
</Project>
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information.
4+
namespace System.Security.Permissions
5+
{
6+
public enum MediaPermissionAudio
7+
{
8+
NoAudio,
9+
SiteOfOriginAudio,
10+
SafeAudio,
11+
AllAudio
12+
}
13+
public enum MediaPermissionVideo
14+
{
15+
NoVideo,
16+
SiteOfOriginVideo,
17+
SafeVideo,
18+
AllVideo,
19+
}
20+
public enum MediaPermissionImage
21+
{
22+
NoImage,
23+
SiteOfOriginImage,
24+
SafeImage,
25+
AllImage,
26+
}
27+
sealed public class MediaPermission : CodeAccessPermission, IUnrestrictedPermission
28+
{
29+
public MediaPermission() { }
30+
public MediaPermission(PermissionState state) { }
31+
public MediaPermission(MediaPermissionAudio permissionAudio) { }
32+
public MediaPermission(MediaPermissionVideo permissionVideo) { }
33+
public MediaPermission(MediaPermissionImage permissionImage) { }
34+
public MediaPermission(MediaPermissionAudio permissionAudio,
35+
MediaPermissionVideo permissionVideo,
36+
MediaPermissionImage permissionImage)
37+
{ }
38+
public bool IsUnrestricted() { return true; }
39+
public override bool IsSubsetOf(IPermission target) { return true; }
40+
public override IPermission Intersect(IPermission target) { return new MediaPermission(); }
41+
public override IPermission Union(IPermission target) { return new MediaPermission(); }
42+
public override IPermission Copy() { return new MediaPermission(); }
43+
public override SecurityElement ToXml() { return default(SecurityElement); }
44+
public override void FromXml(SecurityElement securityElement) { }
45+
public MediaPermissionAudio Audio { get { return MediaPermissionAudio.AllAudio; } }
46+
public MediaPermissionVideo Video { get { return MediaPermissionVideo.AllVideo; } }
47+
public MediaPermissionImage Image { get { return MediaPermissionImage.AllImage; } }
48+
}
49+
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false)]
50+
sealed public class MediaPermissionAttribute : CodeAccessSecurityAttribute
51+
{
52+
public MediaPermissionAttribute(SecurityAction action) : base(action) { }
53+
public override IPermission CreatePermission() { return new MediaPermission(); }
54+
public MediaPermissionAudio Audio { get { return MediaPermissionAudio.AllAudio; } set { } }
55+
public MediaPermissionVideo Video { get { return MediaPermissionVideo.AllVideo; } set { } }
56+
public MediaPermissionImage Image { get { return MediaPermissionImage.AllImage; } set { } }
57+
}
58+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information.
4+
namespace System.Security.Permissions
5+
{
6+
public enum WebBrowserPermissionLevel
7+
{
8+
None,
9+
Safe,
10+
Unrestricted
11+
}
12+
sealed public class WebBrowserPermission : CodeAccessPermission, IUnrestrictedPermission
13+
{
14+
public WebBrowserPermission() { }
15+
public WebBrowserPermission(PermissionState state) { }
16+
public WebBrowserPermission(WebBrowserPermissionLevel webBrowserPermissionLevel) { }
17+
public bool IsUnrestricted() { return true; }
18+
public override bool IsSubsetOf(IPermission target) { return true; }
19+
public override IPermission Intersect(IPermission target) { return new WebBrowserPermission(); }
20+
public override IPermission Union(IPermission target) { return new WebBrowserPermission(); }
21+
public override IPermission Copy() { return new WebBrowserPermission(); }
22+
public override SecurityElement ToXml() { return default(SecurityElement); }
23+
public override void FromXml(SecurityElement securityElement) { }
24+
public WebBrowserPermissionLevel Level { get { return WebBrowserPermissionLevel.Unrestricted; } set { } }
25+
}
26+
27+
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false)]
28+
sealed public class WebBrowserPermissionAttribute : CodeAccessSecurityAttribute
29+
{
30+
public WebBrowserPermissionAttribute(SecurityAction action) : base(action) { }
31+
public override IPermission CreatePermission() { return new WebBrowserPermission(); }
32+
public WebBrowserPermissionLevel Level { get { return WebBrowserPermissionLevel.Unrestricted; } set { } }
33+
}
34+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information.
4+
5+
using System.Reflection;
6+
using System.Security;
7+
8+
namespace System.Xaml.Permissions
9+
{
10+
public class XamlAccessLevel
11+
{
12+
private XamlAccessLevel(string assemblyName, string typeName)
13+
{
14+
AssemblyNameString = assemblyName;
15+
PrivateAccessToTypeName = typeName;
16+
}
17+
18+
public static XamlAccessLevel AssemblyAccessTo(Assembly assembly)
19+
{
20+
return new XamlAccessLevel(assembly.FullName, null);
21+
}
22+
23+
public static XamlAccessLevel AssemblyAccessTo(AssemblyName assemblyName)
24+
{
25+
return new XamlAccessLevel(assemblyName.FullName, null);
26+
}
27+
28+
public static XamlAccessLevel PrivateAccessTo(Type type)
29+
{
30+
return new XamlAccessLevel(type.Assembly.FullName, type.FullName);
31+
}
32+
33+
public static XamlAccessLevel PrivateAccessTo(string assemblyQualifiedTypeName)
34+
{
35+
int nameBoundary = assemblyQualifiedTypeName.IndexOf(',');
36+
string typeName = assemblyQualifiedTypeName.Substring(0, nameBoundary).Trim();
37+
string assemblyFullName = assemblyQualifiedTypeName.Substring(nameBoundary + 1).Trim();
38+
AssemblyName assemblyName = new AssemblyName(assemblyFullName);
39+
return new XamlAccessLevel(assemblyName.FullName, typeName);
40+
}
41+
42+
public AssemblyName AssemblyAccessToAssemblyName
43+
{
44+
get { return new AssemblyName(AssemblyNameString); }
45+
}
46+
47+
public string PrivateAccessToTypeName { get; private set; }
48+
49+
internal string AssemblyNameString { get; private set; }
50+
}
51+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information.
4+
5+
using System.Collections.Generic;
6+
using System.Collections.ObjectModel;
7+
using System.Runtime.InteropServices;
8+
using System.Security;
9+
using System.Security.Permissions;
10+
11+
namespace System.Xaml.Permissions
12+
{
13+
public sealed class XamlLoadPermission : CodeAccessPermission, IUnrestrictedPermission
14+
{
15+
public XamlLoadPermission(PermissionState state) { }
16+
public XamlLoadPermission(XamlAccessLevel allowedAccess) { }
17+
public XamlLoadPermission(IEnumerable<XamlAccessLevel> allowedAccess) { }
18+
[ComVisible(false)]
19+
public override bool Equals(object obj) { return ReferenceEquals(this, obj); }
20+
[ComVisible(false)]
21+
public override int GetHashCode() { return base.GetHashCode(); }
22+
public IList<XamlAccessLevel> AllowedAccess { get; private set; } = new ReadOnlyCollection<XamlAccessLevel>(Array.Empty<XamlAccessLevel>());
23+
public override IPermission Copy() { return new XamlLoadPermission(PermissionState.Unrestricted); }
24+
public override void FromXml(SecurityElement elem) { }
25+
public bool Includes(XamlAccessLevel requestedAccess) { return true; }
26+
public override IPermission Intersect(IPermission target) { return new XamlLoadPermission(PermissionState.Unrestricted); }
27+
public override bool IsSubsetOf(IPermission target) { return true; }
28+
public override SecurityElement ToXml() { return default(SecurityElement); }
29+
public override IPermission Union(IPermission other) { return new XamlLoadPermission(PermissionState.Unrestricted); }
30+
public bool IsUnrestricted() { return true; }
31+
}
32+
}

0 commit comments

Comments
 (0)