ClientFormsIdentity Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Form kimlik doğrulaması kullanılarak istemci uygulama hizmetleri için kimliği doğrulanmış bir kullanıcı kimliğini temsil eder.
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
- Devralma
-
ClientFormsIdentity
- Uygulamalar
Örnekler
Aşağıdaki örnek kod, uygulama çevrimdışı durumdan çıktığında bir kullanıcıyı sessizce yeniden doğrulamak için bu sınıfın nasıl kullanılacağını gösterir. Bu örnekte, CheckedChanged olay işleyicisi çevrimdışı durumu onay kutusu değeriyle eşleşecek şekilde güncelleştirir. Kullanıcı uygulamayı çevrimiçi duruma ayarlarsa, olay işleyicisi RevalidateUser yöntemini çağırarak kullanıcıyı yeniden doğrulamayı dener. Ancak, kimlik doğrulama sunucusu kullanılamıyorsa, olay işleyicisi uygulamayı çevrimdışı duruma döndürür.
Not
RevalidateUser yöntemi yalnızca kolaylık sağlamak içindir. Dönüş değeri olmadığından, yeniden doğrulamanın başarısız olup olmadığını gösteremez. Örneğin, sunucuda kullanıcı kimlik bilgileri değiştiyse yeniden doğrulama başarısız olabilir. Bu durumda, bir hizmet çağrısı başarısız olduktan sonra kullanıcıları açıkça doğrulayan kod eklemek isteyebilirsiniz. Daha fazla bilgi için, İzlenecek Yol: İstemci Uygulama Hizmetlerikullanma bölümündeki Web Ayarlarına Erişme bölümüne bakın.
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
Açıklamalar
İstemci uygulama hizmetleri özelliği, kimliği doğrulanmış bir kullanıcıyı temsil etmek için bu sınıfı kullanır. Uygulamanızı istemci uygulama hizmetlerini ve form kimlik doğrulamasını kullanacak şekilde yapılandırdığınızda, static
Membership.ValidateUser yöntemini çağırarak kullanıcının kimliğini doğrulayabilirsiniz. Kimlik doğrulamasından sonra, static
Thread.CurrentPrincipal özelliği aracılığıyla alınan IPrincipalIdentity özelliği aracılığıyla geçerli ClientFormsIdentity örneğine başvuru alabilirsiniz. Daha fazla bilgi için bkz. İstemci Uygulama Hizmetleri.
Bu sınıfa doğrudan bağımlılıktan kaçınmak için genellikle bir ClientFormsIdentity nesnesine IIdentity başvurusu olarak erişebilirsiniz. Kimliğin IIdentity.IsAuthenticated özelliğini denetleyerek kullanıcının kimliğinin doğrulanıp doğrulanmamış olduğunu belirleyebilirsiniz. Ancak kullanıcının kimliği Windows için doğrulanabilir ancak istemci uygulama hizmetleri için doğrulanamaz. Kullanıcının istemci uygulama hizmetleri için kimliğinin doğrulanıp doğrulanmadığını belirlemek için, IIdentity.AuthenticationType özellik değerinin "ClientForms" olduğunu da onaylamanız gerekir.
IIdentity arabirimi tarafından tanımlanmayan RevalidateUser yöntemini çağırmak için açık bir ClientFormsIdentity başvurusu kullanmanız gerekir.
Oluşturucular
ClientFormsIdentity(String, String, MembershipProvider, String, Boolean, CookieContainer) |
ClientFormsIdentity sınıfının yeni bir örneğini başlatır. |
Özellikler
AuthenticationCookies |
Kimlik doğrulama hizmetinden alınan tanımlama bilgilerinin bir koleksiyonunu alır. |
AuthenticationType |
Kullanıcının kimliğini doğrulamak için kullanılan kimlik doğrulama türünü alır. |
IsAuthenticated |
Kullanıcının kimliğinin doğrulanıp doğrulanmadığını belirten bir değer alır. |
Name |
Kullanıcının adını alır. |
Provider |
Kullanıcının kimliğini doğrulamak için kullanılan üyelik sağlayıcısını alır. |
Yöntemler
Dispose() |
ClientFormsIdentitytarafından kullanılan tüm kaynakları serbest bırakır. |
Dispose(Boolean) |
ClientFormsIdentity tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve isteğe bağlı olarak yönetilen kaynakları serbest bırakır. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
RevalidateUser() |
Önbelleğe alınmış kimlik bilgilerini kullanarak kullanıcının kimliğini sessizce doğrular. |
ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |