Пользовательская базовая аутентификация HTTP для веб-сервисов ASP.NET на.NET 3.5/VS 2008

После PHP 5.6. * Все функции mysql_* устарели. Я думаю, именно поэтому вы получаете Internal server error. Замените все функции mysql_* на mysqli_* и посмотрите, является ли ошибка постоянной.

10
задан Community 23 May 2017 в 12:26
поделиться

3 ответа

Вероятно, использование Пользовательской Стандартной аутентификации для IIS, записанного Dominick Baier, является способом пойти. Поскольку он указывает на WCF 3.5's, имена пользователей по транспортной безопасности не могут использоваться на размещенном IIS сервисе, хотя мой вопрос расценивал веб-сервисы ASP.NET не WCF.

Существует другая реализация HTTP-модуля под названием Стандартная аутентификация в ASP.NET против пользовательского источника данных Santosh Sahoo.

Хотя это не то, что я хотел, я нашел Учебное руководство QuickStart образцом Заголовков SOAP, чтобы быть информативным обходным решением. Отправка пароля в простом тексте по http явно небезопасна, но этот пример мог быть расширен для добавления большей безопасности, например, работая https или отправив хеш "пароля + одноразовый GUID + метка времени".

5
ответ дан 4 December 2019 в 01:58
поделиться

Захватите значение Authorization заголовок, проанализируйте его и проверьте имя пользователя/пароль.

Значение является username:password, закодированным как строка Base64.

См. http://en.wikipedia.org/wiki/Basic_access_authentication для деталей.

Править: если бы Вы хотите сделанный для каждого запроса, с помощью пользовательской подлинной схемы, то было бы легче записать HttpModule обработать парсинг заголовка и установку принципала потока.

3
ответ дан 4 December 2019 в 01:58
поделиться

Если Вы рассматриваете WCF, можно использовать usernameOverTransport безопасность для basicHttpBinding. т.е. имени пользователя, и passowrd находятся в заголовке SOAP запроса, и весь трафик защищены шифрованием SSL по проводу.

Пользовательский блок проверки допустимости UserNamePasswordValidator может использоваться для аутентификации входящих учетных данных против, например, базы данных.

Можно установить принципал потока в пользовательском IAuthorizationPolicy в сервисном поведении.

например, Оцените реализацию метода для IAuthorizationPolicy для установки текущего принципала

public bool Evaluate(EvaluationContext evaluationContext, ref object state)
{
       Object obj;
       if( evaluationContext.Properties.TryGetValue( "Identities", out obj ))
       {
            // get the authenticated identity
            IIdentity client = (obj as IList<IIdentity>)[0];
            evaluationContext.Properties["Principal"] = ... // create principal obj here for the identity
            // this will set thread's current principal
       }
       return true;
}
1
ответ дан 4 December 2019 в 01:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: