Язык

UserNameSecurityTokenAuthenticator.ValidateUserNamePasswordCore Метод

Определение

При переопределении в производном классе выполняет проверку подлинности указанного имени пользователя и пароля и возвращает набор политик авторизации для UserNameSecurityToken маркеров безопасности.

protected:
 abstract System::Collections::ObjectModel::ReadOnlyCollection<System::IdentityModel::Policy::IAuthorizationPolicy ^> ^ ValidateUserNamePasswordCore(System::String ^ userName, System::String ^ password);
protected abstract System.Collections.ObjectModel.ReadOnlyCollection<System.IdentityModel.Policy.IAuthorizationPolicy> ValidateUserNamePasswordCore(string userName, string password);
abstract member ValidateUserNamePasswordCore : string * string -> System.Collections.ObjectModel.ReadOnlyCollection<System.IdentityModel.Policy.IAuthorizationPolicy>
Protected MustOverride Function ValidateUserNamePasswordCore (userName As String, password As String) As ReadOnlyCollection(Of IAuthorizationPolicy)

Параметры

userName
String

Имя пользователя, связанное с маркером безопасности.

password
String

Пароль, связанный с маркером безопасности.

Возвращаемое значение

ReadOnlyCollection<T> ТипIAuthorizationPolicy, содержащий набор политик авторизации, действующих для этого приложения.

Примеры

protected override ReadOnlyCollection<IAuthorizationPolicy> ValidateUserNamePasswordCore(string userName, string password)
{
    if (!ValidateUserNameFormat(userName))
        throw new SecurityTokenValidationException("Incorrect UserName format");

    ClaimSet claimSet = new DefaultClaimSet(ClaimSet.System, new Claim(ClaimTypes.Name, userName, Rights.PossessProperty));
    List<IIdentity> identities = new List<IIdentity>(1);
    identities.Add(new GenericIdentity(userName));
    List<IAuthorizationPolicy> policies = new List<IAuthorizationPolicy>(1);
    policies.Add(new UnconditionalPolicy(ClaimSet.System, claimSet, DateTime.MaxValue.ToUniversalTime(), identities));
    return policies.AsReadOnly();
}
    Protected Overrides Function ValidateUserNamePasswordCore(ByVal userName As String, ByVal password As String) As ReadOnlyCollection(Of IAuthorizationPolicy)

        If Not ValidateUserNameFormat(userName) Then
            Throw New SecurityTokenValidationException("Incorrect UserName format")
        End If
        Dim setOfClaims As New DefaultClaimSet(ClaimSet.System, New Claim(ClaimTypes.Name, userName, Rights.PossessProperty))
        Dim identities As New List(Of IIdentity)(1)

        identities.Add(New GenericIdentity(userName))
        Dim policies As New List(Of IAuthorizationPolicy)(1)
        policies.Add(New UnconditionalPolicy(ClaimSet.System, setOfClaims, DateTime.MaxValue.ToUniversalTime(), identities))
        Return policies.AsReadOnly()

    End Function 'New
End Class

Комментарии

Переопределите ValidateUserNamePasswordCore метод для проверки подлинности UserNameSecurityToken маркеров безопасности.

ValidateUserNamePasswordCore При переопределении метода следуйте приведенным ниже рекомендациям.

  • Если маркер безопасности, переданный в token параметр, не может быть проверен, вызовите SecurityTokenValidationException исключение.

  • Если для этого приложения нет политик авторизации, верните пустой ReadOnlyCollection<T> тип IAuthorizationPolicy.

Когда этот метод возвращает null, Windows Communication Foundation вызывает исключение SecurityTokenValidationException.

Применяется к