PrincipalPermissionAttribute(SecurityAction) Konstruktor
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Upozornění
PrincipalPermissionAttribute is not honored by the runtime and must not be used.
Inicializuje novou instanci PrincipalPermissionAttribute třídy se zadaným SecurityActionobjektem .
public:
PrincipalPermissionAttribute(System::Security::Permissions::SecurityAction action);
[System.Obsolete("PrincipalPermissionAttribute is not honored by the runtime and must not be used.", true, DiagnosticId="SYSLIB0002", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public PrincipalPermissionAttribute (System.Security.Permissions.SecurityAction action);
public PrincipalPermissionAttribute (System.Security.Permissions.SecurityAction action);
[<System.Obsolete("PrincipalPermissionAttribute is not honored by the runtime and must not be used.", true, DiagnosticId="SYSLIB0002", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
new System.Security.Permissions.PrincipalPermissionAttribute : System.Security.Permissions.SecurityAction -> System.Security.Permissions.PrincipalPermissionAttribute
new System.Security.Permissions.PrincipalPermissionAttribute : System.Security.Permissions.SecurityAction -> System.Security.Permissions.PrincipalPermissionAttribute
Public Sub New (action As SecurityAction)
Parametry
- action
- SecurityAction
Jedna z SecurityAction hodnot.
- Atributy
Příklady
Následující příklad ukazuje, jak použít PrincipalPermissionAttribute konstruktor k požadavku, aby aktuální uživatel byl správce.
Poznámka
Ve Windows Vista nástroj Řízení uživatelských účtů (UAC) určuje oprávnění uživatele. Pokud jste členem předdefinované skupiny Administrators, máte přiřazeny dva přístupové tokeny run-time: token přístupu uživatele se standardním oprávněním a token přístupu správce. Ve výchozím nastavení máte roli standardního uživatele. Pokud chcete spustit kód, který vyžaduje, abyste měli oprávnění správce, musíte nejprve zvýšit oprávnění ze standardního uživatele na správce. Můžete to udělat při spuštění aplikace tak, že kliknete pravým tlačítkem na ikonu aplikace a označíte, že chcete spustit jako správce.
using namespace System;
using namespace System::Security;
using namespace System::Security::Permissions;
using namespace System::Security::Policy;
using namespace System::Security::Principal;
[PrincipalPermission(SecurityAction::Demand, Role = "Administrators")]
void CheckAdministrator()
{
Console::WriteLine("User is an administrator.");
}
int main(array<System::String ^> ^args)
{
try
{
// Must set PrincipalPolicy to WindowsPrincipal
AppDomain::CurrentDomain->SetPrincipalPolicy(PrincipalPolicy::WindowsPrincipal);
// Check using declarative security.
CheckAdministrator();
// Check using Imperative security.
System::String^ null;
PrincipalPermission^ principalPerm = gcnew PrincipalPermission(null, "Administrators" );
principalPerm->Demand();
Console::WriteLine("Demand succeeded");
}
catch (Exception ^e)
{
Console::WriteLine(e->Message);
}
return 0;
}
using System;
using System.Threading;
using System.Security.Permissions;
using System.Security.Principal;
class SecurityPrincipalDemo
{
public static void Main()
{
try
{
// PrincipalPolicy must be set to WindowsPrincipal to check roles.
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
// Check using the PrincipalPermissionAttribute
CheckAdministrator();
// Check using PrincipalPermission class.
PrincipalPermission principalPerm = new PrincipalPermission(null, "Administrators");
principalPerm.Demand();
Console.WriteLine("Demand succeeded.");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
[PrincipalPermission(SecurityAction.Demand, Role = "Administrators")]
static void CheckAdministrator()
{
Console.WriteLine("User is an administrator");
}
}
Imports System.Threading
Imports System.Security.Permissions
Imports System.Security.Principal
Class SecurityPrincipalDemo
Public Shared Sub Main()
Try
' PrincipalPolicy must be set to WindowsPrincipal to check roles.
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
' Check using the PrincipalPermissionAttribute
CheckAdministrator()
' Check using PrincipalPermission class.
Dim principalPerm As New PrincipalPermission(Nothing, "Administrators")
principalPerm.Demand()
Console.WriteLine("Demand succeeded.")
Catch e As Exception
Console.WriteLine(e.Message)
End Try
End Sub
<PrincipalPermission(SecurityAction.Demand, Role:="Administrators")> _
Shared Sub CheckAdministrator()
Console.WriteLine("User is an administrator")
End Sub
End Class
Poznámky
Demand
, InheritanceDemand
a LinkDemand
jsou jediné hodnoty SecurityAction , které mají význam pro tento atribut. Jiné akce se nevztahují na oprávnění, která nejsou oprávněními pro přístup ke kódu.