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ınması 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 kodunuzdaki bir Web kamerasına erişmek istiyorsanız, aşağıdaki örnekte gösterildiği gibi bir WebcamSecurityState nesne oluşturur ve konağın Web kamerası erişimine izin verip vermediğini belirlemek için yöntemini çağırırsınız EnsureState . (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 AppDomainManager.CheckSecuritySettings geçersiz kılınması yoluyla algılanması WebcamSecurityState 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

SecurityState()

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

Yöntemler

EnsureState()

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

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()

Type Geçerli örneğini 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 Objectöğesinin sığ bir kopyasını oluşturur.

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

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

(Devralındığı yer: Object)

Şunlara uygulanır