SecurityState Sınıf

Tanım

Nesneden AppDomainManager bir eylemin güvenlik durumunu istemek için bir temel sınıf sağlar.

public ref class SecurityState abstract
public abstract class SecurityState
[System.Security.SecurityCritical]
public abstract class SecurityState
type SecurityState = class
[<System.Security.SecurityCritical>]
type SecurityState = class
Public MustInherit Class SecurityState
Devralma
SecurityState
Türetilmiş
Öznitelikler

Örnekler

Aşağıdaki örnekte sınıfın nasıl geçersiz kılınacakları gösterilmektedir SecurityState .

[SecurityCritical]
public enum WebcamSecurityOptions
{
    SafeAccess,
    FullAccess
}
[SecurityCritical]
public class WebcamSecurityState : SecurityState
{
    public WebcamSecurityState(string description, WebcamSecurityOptions options)
    {
        Options = options;
        Description = description;
    }
    public WebcamSecurityOptions Options { get; set; }
    public string Description { get; set; }
    public override void EnsureState()
    {
        if (!IsStateAvailable())
            throw new ApplicationException("WebcamSecurityState not available");
    }
}

Açıklamalar

Gerçekleştirilecek güvenlik duyarlı eylemi belirten bir özellik içeren bir sınıf sağlamak için bu sınıftan devralınmalıdır. SecurityState Türetilmiş sınıftan örneklenen nesne, konağın bu eylemin AppDomainManager.CheckSecuritySettings gerçekleştirilebilmesine izin verip vermediğini belirlemek için yöntemine geçirilir. yönteminin CheckSecuritySettings varsayılan uygulaması her zaman döndürür false. İzin verilen eylemleri algılamak için yöntemi geçersiz kılınmalıdır.

Örneğin, kitaplık kodunuzda bir Web kamerasına erişmek istiyorsanız, aşağıdaki örnekte gösterildiği gibi bir WebcamSecurityState nesne oluşturup yöntemini çağırarak EnsureState konağın Web kamerası erişimine izin verip vermediğini belirleyebilirsiniz. (kodunu WebcamSecurityState "Örnek" bölümünde bulabilirsiniz.)

var securityState = new WebcamSecurityState("Safe access to Webcam", WebcamSecurityOptions.SafeAccess);
try
{
    securityState.EnsureState();
    // Allocate memory.
}
catch (ApplicationException e)
{
    // Handle any exception that is thrown.
    System.Diagnostics.Debug.WriteLine(e.Message);
}

Çağrıyı AppDomainManager işlemek için, aşağıdaki örnekte gösterildiği gibi yönteminin WebcamSecurityState geçersiz kılınması yoluyla bu çağrının farkında AppDomainManager.CheckSecuritySettings olunması gerekir.

[SecurityCritical]
public override bool CheckSecuritySettings(System.Security.SecurityState securityState)
{
    switch (securityState.ToString())
    {
        case "WebcamSecurityState":
        {
            if ((securityState as WebcamSecurityState).Options == WebcamSecurityOptions.SafeAccess)
                return PromptUser((securityState as WebcamSecurityState).Description);
            return false;
        }
    }
    return false;
}
private bool PromptUser(string text)
{
    // Replace the OpenFileDialog with a custom user prompt.
    OpenFileDialog o = new OpenFileDialog();
    o.Title = text;
    if (o.ShowDialog() == DialogResult.OK)
        return true;
    else
        return false;
}

Oluşturucular

Name Description
SecurityState()

SecurityState sınıfının yeni bir örneğini başlatır.

Yöntemler

Name Description
EnsureState()

Türetilmiş bir sınıfta geçersiz kılındığında, tarafından SecurityState temsil edilen durumun konakta kullanılabilir olduğundan emin olur.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
IsStateAvailable()

Sınıfın bu uygulamasının durumunun SecurityState geçerli konakta kullanılabilir olup olmadığını gösteren bir değer alır.

MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır