_AppDomain.SetPrincipalPolicyとは? わかりやすく解説

AppDomain.SetPrincipalPolicy メソッド

アプリケーション ドメインスレッド実行中にスレッドプリンシパルバインドようとした場合に、プリンシパル オブジェクトID オブジェクトをそのスレッド関連付ける方法指定します

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub SetPrincipalPolicy ( _
    policy As PrincipalPolicy _
)
Dim instance As AppDomain
Dim policy As PrincipalPolicy

instance.SetPrincipalPolicy(policy)
public void SetPrincipalPolicy (
    PrincipalPolicy policy
)
public:
virtual void SetPrincipalPolicy (
    PrincipalPolicy policy
) sealed
public final void SetPrincipalPolicy (
    PrincipalPolicy policy
)
public final function SetPrincipalPolicy (
    policy : PrincipalPolicy
)

パラメータ

policy

スレッドアタッチするプリンシパル オブジェクトの型を指定する、PrincipalPolicy のいずれかの値。

例外例外
解説解説

この値は、Thread.CurrentPrincipal プロパティ使用する前に設定しておく必要があります。たとえば、Thread.CurrentPrincipal特定のプリンシパル (汎用プリンシパルなど) に設定した後、SetPrincipalPolicy メソッドPrincipalPolicy を WindowsPrincipal に設定しても、現在のプリンシパル汎用プリンシパルのままです。

使用例使用例
Imports System
Imports System.Security.Principal
Imports System.Threading

Class ADPrincipal
    Overloads Shared Sub
 Main(ByVal args() As String)
        ' Create a new thread with a generic principal.
        Dim t As New Thread(New
 ThreadStart(AddressOf PrintPrincipalInformation))
        t.Start()
        t.Join()

        ' Set the principal policy to WindowsPrincipal.
        Dim currentDomain As AppDomain = AppDomain.CurrentDomain
        currentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)

        ' The new thread will have a Windows principal representing
 the
        ' current user.
        t = New Thread(New ThreadStart(AddressOf
 PrintPrincipalInformation))
        t.Start()
        t.Join()

        ' Create a principal to use for new threads.
        Dim identity = New GenericIdentity("NewUser")
        Dim principal = New GenericPrincipal(identity,
 Nothing)
        currentDomain.SetThreadPrincipal(principal)

        ' Create a new thread with the principal created above.
        t = New Thread(New ThreadStart(AddressOf
 PrintPrincipalInformation))
        t.Start()
        t.Join()

        ' Wait for user input before terminating.
        Console.ReadLine()
    End Sub 'Main


    Shared Sub PrintPrincipalInformation()
        Dim curPrincipal As IPrincipal = Thread.CurrentPrincipal
        If Not (curPrincipal Is
 Nothing) Then
            Console.WriteLine("Type: " & CType(curPrincipal,
 Object).GetType().Name)
            Console.WriteLine("Name: " & curPrincipal.Identity.Name)
            Console.WriteLine("Authenticated: " &
 curPrincipal.Identity.IsAuthenticated)
            Console.WriteLine()

        End If
    End Sub 'PrintPrincipalInformation
End Class 'ADPrincipal 
using System;
using System.Security.Principal;
using System.Threading;

class ADPrincipal
{
    static void Main(string[]
 args)
    {
        // Create a new thread with a generic principal.
        Thread t = new Thread(new ThreadStart(PrintPrincipalInformation));
        t.Start();
        t.Join();

        // Set the principal policy to WindowsPrincipal.
        AppDomain currentDomain = AppDomain.CurrentDomain;
        currentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
            
        // The new thread will have a Windows principal representing
 the
        // current user.
        t = new Thread(new ThreadStart(PrintPrincipalInformation));
        t.Start();
        t.Join();

        // Create a principal to use for new threads.
        IIdentity identity = new GenericIdentity("NewUser");
        IPrincipal principal = new GenericPrincipal(identity,
 null);
        currentDomain.SetThreadPrincipal(principal);
            
        // Create a new thread with the principal created above.
        t = new Thread(new ThreadStart(PrintPrincipalInformation));
        t.Start();
        t.Join();
        
        // Wait for user input before terminating.
        Console.ReadLine();
    }

    static void PrintPrincipalInformation()
    {
        IPrincipal curPrincipal = Thread.CurrentPrincipal;
        if(curPrincipal != null)
        {
            Console.WriteLine("Type: " + curPrincipal.GetType().Name);
            Console.WriteLine("Name: " + curPrincipal.Identity.Name);
            Console.WriteLine("Authenticated: " +
                curPrincipal.Identity.IsAuthenticated);
            Console.WriteLine();
        }
    }
}
using namespace System;
using namespace System::Security::Principal;
using namespace System::Threading;
ref class ADPrincipal
{
public:
   static void PrintPrincipalInformation()
   {
      IPrincipal^ curPrincipal = Thread::CurrentPrincipal;
      if ( curPrincipal != nullptr )
      {
         Console::WriteLine( "Type: {0}", curPrincipal->GetType()->Name
 );
         Console::WriteLine( "Name: {0}", curPrincipal->Identity->Name
 );
         Console::WriteLine( "Authenticated: {0}", curPrincipal->Identity->IsAuthenticated
 );
         Console::WriteLine();
      }
   }

};

int main()
{
   
   // Create a new thread with a generic principal.
   Thread^ t = gcnew Thread( gcnew ThreadStart( ADPrincipal::PrintPrincipalInformation
 ) );
   t->Start();
   t->Join();
   
   // Set the principal policy to WindowsPrincipal.
   AppDomain^ currentDomain = AppDomain::CurrentDomain;
   currentDomain->SetPrincipalPolicy( PrincipalPolicy::WindowsPrincipal );
   
   // The new thread will have a Windows principal representing the
   // current user.
   t = gcnew Thread( gcnew ThreadStart( ADPrincipal::PrintPrincipalInformation )
 );
   t->Start();
   t->Join();
   
   // Create a principal to use for new threads.
   IIdentity^ identity = gcnew GenericIdentity( "NewUser" );
   IPrincipal^ principal = gcnew GenericPrincipal( identity,nullptr );
   currentDomain->SetThreadPrincipal( principal );
   
   // Create a new thread with the principal created above.
   t = gcnew Thread( gcnew ThreadStart( ADPrincipal::PrintPrincipalInformation )
 );
   t->Start();
   t->Join();
   
   // Wait for user input before terminating.
   Console::ReadLine();
}

import System.*;
import System.Security.Principal.*;
import System.Threading.*;

class ADPrincipal
{
    public static void main(String[]
 args)
    {
        // Create a new thread with a generic principal.
        System.Threading.Thread t = new System.Threading.Thread(
            new ThreadStart(PrintPrincipalInformation));
        t.Start();
        t.Join();

        // Set the principal policy to WindowsPrincipal.
        AppDomain currentDomain = AppDomain.get_CurrentDomain();
        currentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);

        // The new thread will have a Windows principal representing
 the
        // current user.
        t = new System.Threading.Thread(
            new ThreadStart(PrintPrincipalInformation));
        t.Start();
        t.Join();

        // Create a principal to use for new threads.
        IIdentity identity = new GenericIdentity("NewUser");
        IPrincipal principal = new GenericPrincipal(identity,
 null);
        currentDomain.SetThreadPrincipal(principal);

        // Create a new thread with the principal created above.
        t = new System.Threading.Thread(
            new ThreadStart(PrintPrincipalInformation));
        t.Start();
        t.Join();

        // Wait for user input before terminating.
        Console.ReadLine();
    } //main

    static void PrintPrincipalInformation()
    {
        IPrincipal curPrincipal = 
            System.Threading.Thread.get_CurrentPrincipal();

        if (curPrincipal != null) {
            Console.WriteLine("Type: " + curPrincipal.GetType().get_Name());
            Console.WriteLine("Name: " 
                + curPrincipal.get_Identity().get_Name());
            Console.WriteLine("Authenticated: " 
                + (System.Boolean)curPrincipal.get_Identity().
                get_IsAuthenticated());
            Console.WriteLine();
        }
    } //PrintPrincipalInformation
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

_AppDomain.SetPrincipalPolicy メソッド




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「_AppDomain.SetPrincipalPolicy」の関連用語

_AppDomain.SetPrincipalPolicyのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



_AppDomain.SetPrincipalPolicyのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS