SecurityState Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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) |