/// <summary> /// Проверка пароля /// </summary> /// <param name="authPolicy"> /// полиция ёпта /// </param> /// <param name="listenUri"> /// урл /// </param> /// <param name="message"> /// сообщение /// </param> /// <returns> /// принципалы /// </returns> public override ReadOnlyCollection <IAuthorizationPolicy> Authenticate( ReadOnlyCollection <IAuthorizationPolicy> authPolicy, Uri listenUri, ref Message message) { var sessionFactory = ObjectFactory.GetInstance <ISessionFactory>(); using (var session = sessionFactory.OpenSession()) { try { CurrentSessionContext.Bind(session); var credentials = TokenCredentials.FromMessageHeader(message); var user = ObjectFactory.GetInstance <ISecurityProvider>().GetDateFromToken(credentials.Token); ////var user = ObjectFactory.GetInstance<ISecurityProvider>().GetUserByName("admin"); if (user != null) { var identity = new ChallengeIdentity(user.Login, user.Password); IPrincipal principal = new ChallengePrincipal(identity); message.Properties["Principal"] = principal; return(authPolicy); } } finally { CurrentSessionContext.Unbind(sessionFactory); session.Flush(); session.Close(); } } throw new AuthenticationException("Incorrect credentials!"); }