StrongNameIdentityPermission.Intersect(IPermission) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает и возвращает разрешение, представляющее собой пересечение текущего и указанного разрешений.
public:
override System::Security::IPermission ^ Intersect(System::Security::IPermission ^ target);
public override System.Security.IPermission Intersect (System.Security.IPermission target);
override this.Intersect : System.Security.IPermission -> System.Security.IPermission
Public Overrides Function Intersect (target As IPermission) As IPermission
Параметры
- target
- IPermission
Разрешение, пересекающееся с текущим разрешением. Его тип должен совпадать с типом текущего разрешения.
Возвращаемое значение
Новое разрешение, представляющее собой пересечение текущего разрешения и указанного разрешения, или null
, если пересечение является пустым.
Исключения
Параметр target
не равен null
и имеет тип, не совпадающий с типом текущего разрешения.
Примеры
В следующем примере кода показаны результаты использования Intersect метода , а не способ использования метода . Этот пример является частью более крупного примера, предоставленного StrongNameIdentityPermission для класса . Лучше всего использовать этот пример для сборки и выполнения всего примера и просмотра его выходных данных.
Примечание
Пример кода предназначен для демонстрации поведения метода, а не для демонстрации его использования. Как правило, методы классов разрешений используются инфраструктурой безопасности; они обычно не используются в приложениях.
// Intersect creates and returns a new permission that is the intersection of the current
// permission and the permission specified.
bool IntersectDemo()
{
bool returnValue = true;
StrongNameIdentityPermission^ snIdPerm1;
StrongNameIdentityPermission^ snIdPerm2;
StrongNameIdentityPermission^ snIdPerm3;
snIdPerm1 = gcnew StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.*", gcnew Version("1.0.0.0"));
snIdPerm2 = gcnew StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.MyFile", gcnew Version("1.0.0.0"));
try
{
snIdPerm3 = dynamic_cast<StrongNameIdentityPermission^>(snIdPerm1->Intersect(snIdPerm2));
Console::WriteLine("The intersection of MyCompany.MyDepartment.*" +
"and MyCompany.MyDepartment.MyFile is " +
(dynamic_cast<StrongNameIdentityPermission^>(snIdPerm3))->Name);
}
catch (Exception^ e)
{
Console::WriteLine("An exception was thrown: " + e);
returnValue = false;
}
return returnValue;
}
// Intersect creates and returns a new permission that is the intersection of the current
// permission and the permission specified.
private bool IntersectDemo()
{
bool returnValue = true;
StrongNameIdentityPermission snIdPerm1, snIdPerm2, snIdPerm3;
snIdPerm1 = new StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.*", new Version("1.0.0.0"));
snIdPerm2 = new StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.MyFile", new Version("1.0.0.0"));
try
{
snIdPerm3 = (StrongNameIdentityPermission)snIdPerm1.Intersect(snIdPerm2);
Console.WriteLine("The intersection of MyCompany.MyDepartment.*"
+ "MyCompany.MyDepartment.MyFile is "
+ ((StrongNameIdentityPermission)snIdPerm3).Name.ToString());
}
catch (Exception e)
{
Console.WriteLine("An exception was thrown: " + e);
returnValue = false;
}
return returnValue;
}
' Intersect creates and returns a new permission that is the intersection of the current
' permission and the permission specified.
Private Function IntersectDemo() As Boolean
Dim returnValue As Boolean = True
Dim snIdPerm1, snIdPerm2, snIdPerm3 As StrongNameIdentityPermission
snIdPerm1 = New StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.*", New Version("1.0.0.0"))
snIdPerm2 = New StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.MyFile", New Version("1.0.0.0"))
Try
snIdPerm3 = CType(snIdPerm1.Intersect(snIdPerm2), StrongNameIdentityPermission)
Console.WriteLine("The intersection of MyCompany.MyDepartment.*" + "MyCompany.MyDepartment.MyFile is " + CType(snIdPerm3, StrongNameIdentityPermission).Name.ToString())
Catch e As Exception
Console.WriteLine("An exception was thrown: " + e.ToString())
returnValue = False
End Try
Return returnValue
End Function 'IntersectDemo
Комментарии
Пересечение двух разрешений — это разрешение, описывающее набор операций, которые они описывают в общем. Только требование, которое передает оба исходных разрешения, будет проходить пересечение.
Пересечение двух одинаковых разрешений для удостоверений строгого имени — это одно и то же разрешение. Пересечение двух разных (не подстановочных) выражений является пустым разрешением. Пересечение выражения с подстановочными знаками и соответствующего строгого имени — это строгое имя. Пересечение двух соответствующих выражений с подстановочными знаками является более длинным, более конкретным из двух выражений.
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по