Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Metoda "method1" ma żądanie łącza, ale zastępuje lub implementuje metodę "method2", która nie ma zapotrzebowania na łącza. Może istnieć dziura zabezpieczeń.
Żądanie połączenia skonfigurowane dla metody klasy pochodnej można łatwo obejść, wywołując metodę klasy bazowej. Aby zamknąć dziurę zabezpieczeń, metoda klasy bazowej musi również używać zapotrzebowania na łącza. Aby uzyskać więcej informacji, zobacz Demand vs. LinkDemand.
Przykład
Poniższy przykład generuje plik CS0688. Aby rozwiązać problem z ostrzeżeniem bez modyfikowania klasy bazowej, usuń atrybut zabezpieczeń z metody zastępowania. Nie rozwiąże to problemu z zabezpieczeniami.
// CS0688.cs
// compile with: /W:1
using System;
using System.Security.Permissions;
class Base
{
//Uncomment the following line to close the security hole
//[FileIOPermission(SecurityAction.LinkDemand, All=@"C:\\")]
public virtual void DoScaryFileStuff()
{
}
}
class Derived: Base
{
[FileIOPermission(SecurityAction.LinkDemand, All=@"C:\\")] // CS0688
public override void DoScaryFileStuff()
{
}
static void Main()
{
}
}