SecurityState Sınıf

Tanım

Nesnesinden bir eylemin güvenlik durumunu istemek için bir temel sınıf sağlar AppDomainManager .Provides a base class for requesting the security status of an action from the AppDomainManager object.

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 örnek, sınıfının nasıl geçersiz kılınacağını göstermektedir SecurityState .The following example shows how to override the SecurityState class.

[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 özelliği içeren bir sınıf sağlamak için bu sınıftan devralması gerekir.You must inherit from this class to provide a class that includes a property that specifies the security-sensitive action to be performed. SecurityStateTüretilmiş sınıftan oluşturulan nesne, AppDomainManager.CheckSecuritySettings konağın bu eylemin gerçekleştirilmesine izin verip içermediğini anlamak için yöntemine geçirilir.The SecurityState object that is instantiated from the derived class is passed to the AppDomainManager.CheckSecuritySettings method to determine whether the host allows that action to be performed. Metodun varsayılan uygulanması CheckSecuritySettings her zaman döndürülür false .The default implementation of the CheckSecuritySettings method always returns false. İzin verilen eylemleri algılamak için yöntemi geçersiz kılınmalıdır.The method must be overridden to detect the actions that are allowed.

Örneğin, kitaplık kodunuzda bir web kameraya erişmek istiyorsanız bir WebcamSecurityState nesne oluşturur ve EnsureState Aşağıdaki örnekte gösterildiği gibi, konağın Web Kamerası erişimine izin verip vermediğini tespit etmek için yöntemini çağırabilirsiniz.For example, if you want to access a Web camera in your library code, you would create a WebcamSecurityState object and call the EnsureState method to determine whether the host allows Web camera access, as shown in the following example. (Kodunu WebcamSecurityState "örnek" bölümünde bulabilirsiniz.)(You can find the code for WebcamSecurityState in the "Example" section.)

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ı işlemek için, AppDomainManager WebcamSecurityState AppDomainManager.CheckSecuritySettings Aşağıdaki örnekte gösterildiği gibi, yönteminin geçersiz kılınması aracılığıyla farkında yapılmalıdır.To process the call the AppDomainManager must be made aware of WebcamSecurityState through an override of the AppDomainManager.CheckSecuritySettings method, as shown in the following example.

[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.Initializes a new instance of the SecurityState class.

Yöntemler

EnsureState()

Türetilmiş bir sınıfta geçersiz kılınırsa, tarafından temsil edilen durumun konakta kullanılabilir olmasını sağlar SecurityState .When overridden in a derived class, ensures that the state that is represented by SecurityState is available on the host.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.Determines whether the specified object is equal to the current object.

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

Varsayılan karma işlevi olarak işlev görür.Serves as the default hash function.

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

TypeGeçerli örneği alır.Gets the Type of the current instance.

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

Sınıfın bu uygulamasının durumunun geçerli konakta kullanılabilir olup olmadığını gösteren bir değer alır SecurityState .Gets a value that indicates whether the state for this implementation of the SecurityState class is available on the current host.

MemberwiseClone()

Geçerli bir basit kopyasını oluşturur Object .Creates a shallow copy of the current Object.

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

Geçerli nesneyi temsil eden dizeyi döndürür.Returns a string that represents the current object.

(Devralındığı yer: Object)

Şunlara uygulanır