다음을 통해 공유


ClientFormsIdentity 클래스

정의

양식 인증을 사용하여 클라이언트 애플리케이션 서비스에 대해 인증된 사용자 ID를 나타냅니다.

public ref class ClientFormsIdentity : IDisposable, System::Security::Principal::IIdentity
public class ClientFormsIdentity : IDisposable, System.Security.Principal.IIdentity
type ClientFormsIdentity = class
    interface IIdentity
    interface IDisposable
Public Class ClientFormsIdentity
Implements IDisposable, IIdentity
상속
ClientFormsIdentity
구현

예제

다음 예제 코드는 애플리케이션이 오프라인 상태를 떠날 때 이 클래스를 사용하여 자동으로 사용자의 유효성을 다시 검사하는 방법을 보여 줍니다. 이 예제에서 CheckedChanged 이벤트 처리기는 확인란 값과 일치하도록 오프라인 상태를 업데이트합니다. 사용자가 애플리케이션을 온라인 상태로 설정하면 이벤트 처리기가 RevalidateUser 메서드를 호출하여 사용자의 유효성을 다시 검사하려고 시도합니다. 그러나 인증 서버를 사용할 수 없는 경우 이벤트 처리기는 애플리케이션을 오프라인 상태로 반환합니다.

메모

RevalidateUser 메서드는 편의를 위해서만 사용됩니다. 반환 값이 없으므로 유효성 재검사에 실패했는지 여부를 나타낼 수 없습니다. 예를 들어 서버에서 사용자 자격 증명이 변경된 경우 유효성 재검사에 실패할 수 있습니다. 이 경우 서비스 호출이 실패한 후 사용자의 유효성을 명시적으로 검사하는 코드를 포함할 수 있습니다. 자세한 내용은 연습: 클라이언트 애플리케이션 서비스사용의 웹 설정 액세스 섹션을 참조하세요.

private void workOfflineCheckBox_CheckedChanged(
    object sender, EventArgs e)
{
    ConnectivityStatus.IsOffline = workOfflineCheckBox.Checked;
    if (!ConnectivityStatus.IsOffline)
    {
        try
        {
            // Silently re-validate the user.
            ((ClientFormsIdentity)
                System.Threading.Thread.CurrentPrincipal.Identity)
                .RevalidateUser();

            // If any settings have been changed locally, save the new
            // new values to the Web settings service.
            SaveSettings();

            // If any settings have not been changed locally, check 
            // the Web settings service for updates. 
            Properties.Settings.Default.Reload();
        }
        catch (System.Net.WebException)
        {
            MessageBox.Show(
                "Unable to access the authentication service. " +
                Environment.NewLine + "Staying in offline mode.",
                "Warning", MessageBoxButtons.OK, 
                MessageBoxIcon.Warning);
            workOfflineCheckBox.Checked = true;
        }
    }
}
Private Sub workOfflineCheckBox_CheckedChanged( _
    ByVal sender As Object, ByVal e As EventArgs) _
    Handles workOfflineCheckBox.CheckedChanged

    ConnectivityStatus.IsOffline = workOfflineCheckBox.Checked
    If Not ConnectivityStatus.IsOffline Then

        Try

            ' Silently re-validate the user.
            CType(System.Threading.Thread.CurrentPrincipal.Identity,  _
                ClientFormsIdentity).RevalidateUser()

            ' If any settings have been changed locally, save the new
            ' new values to the Web settings service.
            SaveSettings()

            ' If any settings have not been changed locally, check 
            ' the Web settings service for updates. 
            My.Settings.Reload()

        Catch ex As System.Net.WebException

            MessageBox.Show( _
                "Unable to access the authentication service. " & _
                Environment.NewLine + "Staying in offline mode.", _
                "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            workOfflineCheckBox.Checked = True

        End Try

    End If
End Sub

설명

클라이언트 애플리케이션 서비스 기능은 이 클래스를 사용하여 인증된 사용자를 나타냅니다. 클라이언트 애플리케이션 서비스 및 양식 인증을 사용하도록 애플리케이션을 구성하는 경우 staticMembership.ValidateUser 메서드를 호출하여 사용자를 인증할 수 있습니다. 인증 후에는 staticThread.CurrentPrincipal 속성을 통해 검색된 IPrincipalIdentity 속성을 통해 현재 ClientFormsIdentity 인스턴스에 대한 참조를 검색할 수 있습니다. 자세한 내용은 클라이언트 애플리케이션 서비스참조하세요.

일반적으로 이 클래스에 대한 직접 종속성을 방지하기 위해 IIdentity 참조로 ClientFormsIdentity 개체에 액세스합니다. ID의 IIdentity.IsAuthenticated 속성을 확인하여 사용자가 인증되는지 여부를 확인할 수 있습니다. 그러나 사용자는 Windows에 대해 인증될 수 있지만 클라이언트 애플리케이션 서비스에 대해서는 인증되지 않을 수 있습니다. 사용자가 클라이언트 애플리케이션 서비스에 대해 인증되었는지 여부를 확인하려면 IIdentity.AuthenticationType 속성 값이 "ClientForms"인지도 확인해야 합니다.

명시적 ClientFormsIdentity 참조를 사용하여 IIdentity 인터페이스에서 정의되지 않은 RevalidateUser 메서드를 호출해야 합니다.

생성자

ClientFormsIdentity(String, String, MembershipProvider, String, Boolean, CookieContainer)

ClientFormsIdentity 클래스의 새 인스턴스를 초기화합니다.

속성

AuthenticationCookies

인증 서비스에서 검색된 쿠키의 컬렉션을 가져옵니다.

AuthenticationType

사용자를 인증하는 데 사용되는 인증 유형을 가져옵니다.

IsAuthenticated

사용자가 인증되었는지 여부를 나타내는 값을 가져옵니다.

Name

사용자의 이름을 가져옵니다.

Provider

사용자를 인증하는 데 사용되는 멤버 자격 공급자를 가져옵니다.

메서드

Dispose()

ClientFormsIdentity사용하는 모든 리소스를 해제합니다.

Dispose(Boolean)

ClientFormsIdentity 사용하는 관리되지 않는 리소스를 해제하고 필요에 따라 관리되는 리소스를 해제합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 여부를 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 사용됩니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
RevalidateUser()

캐시된 자격 증명을 사용하여 사용자를 자동으로 인증합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상

추가 정보