UrlIdentityPermission.Intersect メソッド
アセンブリ: mscorlib (mscorlib.dll 内)
構文Dim instance As UrlIdentityPermission Dim target As IPermission Dim returnValue As IPermission returnValue = instance.Intersect(target)
戻り値
現在のアクセス許可と指定したアクセス許可の積集合を表す新しいアクセス許可。積集合が空の場合、この新しいアクセス許可は null 参照 (Visual Basic では Nothing) です。
例外
解説2 つのアクセス許可の積集合となるアクセス許可には、両方に共通する URL へのアクセス権が記述されています。2 つのアクセス許可を要求し、その両方について要求が満たされる場合にだけ、それらの積集合を表すアクセス許可に対する要求も満たされます。たとえば、http://www.fourthcoffee.com/process/grind.htm へのアクセス権を表すアクセス許可と http://www.fourthcoffee.com/* へのアクセス権を表すアクセス許可の積集合は、http://www.fourthcoffee.com/process/grind.htm へのアクセス権を表すアクセス許可になります。
現在のアクセス許可が、指定したアクセス許可オブジェクトと等しい場合、またはいずれかアクセス許可がワイルドカード演算子 ("*") を使用している場合、UrlIdentityPermission は set 操作 (IsSubsetOf、Intersect、および Union) だけをサポートします。
使用例次に示すのは、Intersect メソッドを使用した場合の結果を示す例です (メソッドの使用方法を示すものではありません)。ここに示すコードは、より長いコードの一部です。よりよく理解するためには、コード全体を記述して実行し、その出力を確認することをお勧めします。完全なコードについては、UrlIdentityPermission クラスを参照してください。
' 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 url1 As String = "" Dim url2 As String = "" Dim urlIdPerm1, urlIdPerm2, urlIdPerm3 As UrlIdentityPermission Dim urlGen1 As New UrlGenerator() Dim urlGen2 As New UrlGenerator() urlGen1.ResetIndex() While urlGen1.CreateUrl(url1) urlIdPerm1 = New UrlIdentityPermission(url1) Console.WriteLine("**********************************************************" & ControlChars.Lf) urlGen2.ResetIndex() Console.WriteLine("********************************************************\n") While urlGen2.CreateUrl(url2) urlIdPerm2 = New UrlIdentityPermission(url2) Dim firstPermission As String = IIf(url1 = "" Or url1 Is Nothing, "null", url1) Dim secondPermission As String = IIf(url2 = "" Or url2 Is Nothing, "null", url2) Try urlIdPerm3 = CType(urlIdPerm1.Intersect(urlIdPerm2), UrlIdentityPermission) If Not (urlIdPerm3 Is Nothing) AndAlso Not (urlIdPerm3.Url Is Nothing) Then Console.WriteLine("The intersection of " & firstPermission & " and " & ControlChars.Lf & ControlChars.Tab & secondPermission & " = " & ControlChars.Lf & ControlChars.Tab & CType(urlIdPerm3, UrlIdentityPermission).Url.ToString()) Else Console.WriteLine("The intersection of " & firstPermission & " and " & ControlChars.Lf & ControlChars.Tab & secondPermission & " is null. ") End If Catch e As Exception Console.WriteLine("An exception was thrown for the intersection : " & e.ToString()) returnValue = False End Try ContinueWhile2: End While ContinueWhile1: End While Return returnValue End Function 'IntersectDemo
// 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; string url1, url2; UrlIdentityPermission urlIdPerm1, urlIdPerm2, urlIdPerm3; UrlGenerator urlGen1 = new UrlGenerator(); UrlGenerator urlGen2 = new UrlGenerator(); urlGen1.ResetIndex(); while (urlGen1.CreateUrl(out url1)) { urlIdPerm1 = new UrlIdentityPermission(url1); Console.WriteLine("**********************************************************\n"); urlGen2.ResetIndex(); Console.WriteLine("********************************************************\n"); while (urlGen2.CreateUrl(out url2)) { urlIdPerm2 = new UrlIdentityPermission(url2); string firstPermission = url1 == "" | url1 == null ? "null" : url1; string secondPermission = url2 == "" | url2 == null ? "null" : url2; try { urlIdPerm3 = (UrlIdentityPermission)urlIdPerm1.Intersect(urlIdPerm2); if (urlIdPerm3 != null && urlIdPerm3.Url != null) { Console.WriteLine("The intersection of " + firstPermission + " and \n\t" + secondPermission + " = \n\t" + ((UrlIdentityPermission)urlIdPerm3).Url.ToString()); } else { Console.WriteLine("The intersection of " + firstPermission + " and \n\t" + secondPermission + " is null. "); } } catch (Exception e) { Console.WriteLine("An exception was thrown for the intersection : " + 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 boolean IntersectDemo() { boolean returnValue = true; String url1[] = new String[1]; String url2[] = new String[1]; UrlIdentityPermission urlIdPerm1[] = new UrlIdentityPermission[1]; UrlIdentityPermission urlIdPerm2[] = new UrlIdentityPermission[1]; UrlIdentityPermission urlIdPerm3[] = new UrlIdentityPermission[1]; UrlGenerator urlGen1 = new UrlGenerator(); UrlGenerator urlGen2 = new UrlGenerator(); urlGen1.ResetIndex(); while (urlGen1.CreateUrl(urlIdPerm1, url1)) { if (urlIdPerm1 == null) { continue; } Console.WriteLine("***************************************" + "*******************\n"); urlGen2.ResetIndex(); Console.WriteLine("****************************************" + "****************\n"); while (urlGen2.CreateUrl(urlIdPerm2, url2)) { if (urlIdPerm2 == null) { continue; } String firstPermission = (url1[0] == "" || url1[0] == null) ? "null" : url1[0]; String secondPermission = (url2[0] == "" || url2[0] == null) ? "null" : url2[0]; try { urlIdPerm3[0] = ((UrlIdentityPermission)(urlIdPerm1[0]. Intersect(urlIdPerm2[0]))); if (urlIdPerm3[0] != null && urlIdPerm3[0]. get_Url() != null) { Console.WriteLine(("The intersection of " + firstPermission + " and \n\t" + secondPermission + " = \n\t" + ((UrlIdentityPermission)(urlIdPerm3[0])). get_Url().ToString())); } else { Console.WriteLine(("The intersection of " + firstPermission + " and \n\t" + secondPermission + " is nu //IntersectDemoll. ")); } } catch (System.Exception e) { Console.WriteLine(("An exception was thrown " + "for the intersection : " + e)); returnValue = false; } } } return returnValue; } //IntersectDemo
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照- UrlIdentityPermission.Intersect メソッドのページへのリンク