XML エンコーディングから、指定した状態のアクセス許可を再構築します。
Overrides Public Sub FromXml( _
ByVal esd As SecurityElement _) Implements ISecurityEncodable.FromXml
[C#]
public override void FromXml(SecurityElementesd);
[C++]
public: void FromXml(SecurityElement* esd);
[JScript]
public override function FromXml(
esd : SecurityElement);
パラメータ
- esd
アクセス許可の再構築に使用する XML エンコーディング。
実装
例外
| 例外の種類 | 条件 |
|---|---|
| ArgumentNullException | esd パラメータが null 参照 (Visual Basic では Nothing) です。 |
| ArgumentException | esd パラメータが有効なアクセス許可要素ではありません。
または esd パラメータのバージョン番号が有効ではありません。 |
使用例
' ToXml creates an XML encoding of the permission and its current state; FromXml reconstructs a
' permission with the specified state from the XML encoding.
Private Function ToFromXmlDemo() As Boolean
Dim returnCodeCode As Boolean = True
Dim site1 As [String]
Dim siteIdPerm1, siteIdPerm2 As SiteIdentityPermission
Dim successFlag As Boolean
Dim siteGen1 As New SiteGenerator()
Dim siteGen2 As New SiteGenerator()
siteGen1.ResetIndex()
While siteGen1.CreateSite(siteIdPerm1, site1, successFlag)
If siteIdPerm1 Is Nothing Or successFlag = False Then
GoTo ContinueWhile1
End If
siteGen2.ResetIndex()
Console.WriteLine("**************************************************************************")
Try
siteIdPerm2 = New SiteIdentityPermission(PermissionState.None.ToString())
siteIdPerm2.FromXml(siteIdPerm1.ToXml())
Dim result As Boolean = siteIdPerm2.Equals(siteIdPerm1)
If siteIdPerm2.IsSubsetOf(siteIdPerm1) AndAlso siteIdPerm1.IsSubsetOf(siteIdPerm2) Then
Console.WriteLine(("Result of ToFromXml = " & siteIdPerm2.ToString()))
Else
Console.WriteLine(siteIdPerm2.ToString())
Console.WriteLine(siteIdPerm1.ToString())
End If
Catch e As Exception
Console.WriteLine(("ToFromXml failed. " & e.ToString()))
GoTo ContinueWhile1
End Try
ContinueWhile1:
End While
Return returnCodeCode
End Function 'ToFromXmlDemo
[C#]
// ToXml creates an XML encoding of the permission and its current state; FromXml reconstructs a
// permission with the specified state from the XML encoding.
private bool ToFromXmlDemo()
{
bool returnCodeCode = true;
String site1;
SiteIdentityPermission siteIdPerm1,siteIdPerm2;
bool successFlag;
SiteGenerator siteGen1 = new SiteGenerator();
SiteGenerator siteGen2 = new SiteGenerator();
siteGen1.ResetIndex();
while(siteGen1.CreateSite(out siteIdPerm1, out site1, out successFlag))
{
if(siteIdPerm1 == null | successFlag == false) continue;
siteGen2.ResetIndex();
Console.WriteLine("**************************************************************************");
try
{
siteIdPerm2= new SiteIdentityPermission(PermissionState.None);
siteIdPerm2.FromXml(siteIdPerm1.ToXml());
bool result = siteIdPerm2.Equals(siteIdPerm1);
if (siteIdPerm2.IsSubsetOf(siteIdPerm1) && siteIdPerm1.IsSubsetOf(siteIdPerm2))
{
Console.WriteLine("Result of ToFromXml = " + siteIdPerm2.ToString());
}
else
{
Console.WriteLine(siteIdPerm2.ToString());
Console.WriteLine(siteIdPerm1.ToString());
}
}
catch(Exception e) {
Console.WriteLine("ToFromXml failed. " + e);
continue;
}
}
return returnCodeCode;
}
[C++]
// ToXml creates an XML encoding of the permission and its current state; FromXml reconstructs a
// permission with the specified state from the XML encoding.
bool ToFromXmlDemo() {
bool returnCodeCode = true;
String* site1;
SiteIdentityPermission* siteIdPerm1, *siteIdPerm2;
bool successFlag;
SiteGenerator* siteGen1 = new SiteGenerator();
SiteGenerator* siteGen2 = new SiteGenerator();
siteGen1->ResetIndex();
while(siteGen1->CreateSite(&siteIdPerm1, &site1, &successFlag)) {
if (siteIdPerm1 == 0 || successFlag == false) continue;
siteGen2->ResetIndex();
Console::WriteLine(S"**************************************************************************");
try {
siteIdPerm2 = new SiteIdentityPermission(PermissionState::None);
siteIdPerm2->FromXml(siteIdPerm1->ToXml());
bool result = siteIdPerm2->Equals(siteIdPerm1);
if (siteIdPerm2->IsSubsetOf(siteIdPerm1) && siteIdPerm1->IsSubsetOf(siteIdPerm2)) {
Console::WriteLine(S"Result of ToFromXml = {0}", siteIdPerm2);
} else {
Console::WriteLine(siteIdPerm2);
Console::WriteLine(siteIdPerm1);
}
} catch (Exception* e) {
Console::WriteLine(S"ToFromXml failed. {0}", e);
continue;
}
}
return returnCodeCode;
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン
をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
SiteIdentityPermission クラス | SiteIdentityPermission メンバ | System.Security.Permissions 名前空間