|
HTTP Аутентификация | ☑ | ||
---|---|---|---|---|
0
korableg
16.11.14
✎
14:56
|
Люди, подскажите пожалуйста, кто-нибудь делал HTTP аутентификацию на 1С. Меня интересует поле cnonce, как его расчитывать?
|
|||
1
oleg_km
16.11.14
✎
19:06
|
||||
2
Woldemar22LR
16.11.14
✎
20:03
|
подпишусь пожалуй на тему.
|
|||
3
Serginio1
16.11.14
✎
20:13
|
||||
4
Serginio1
16.11.14
✎
21:26
|
||||
5
oleg_km
16.11.14
✎
21:42
|
(4) Ну да, примерно как я и написал:
cnonce - уникальная строка, посылаемая браузером на сервер |
|||
6
Serginio1
16.11.14
✎
21:54
|
(5) Да
https://ru.wikipedia.org/wiki/Nonce Вот расчет string realm = ConfigurationSettings.AppSettings["HTTPDigest.Components.AuthDigest_Realm"]; // a) // A1 = unq(username-value) ":" unq(realm-value) ":" passwd string A1 = String.Format("{0}:{1}:{2}", (string)dictAuthHeaderContents["username"], realm, password); // b) // HA1 = MD5(A1) string HA1 = CvtHex(A1); // c) // A2 = HTTP Method ":" digest-uri-value string A2 = String.Format("{0}:{1}", app.Request.HttpMethod, (string)dictAuthHeaderContents["uri"]); // d) // HA2 = MD5(A2) string HA2 = CvtHex(A2); // e) // GENRESPONSE = HA1 ":" nonce ":" nc ":" cnonce ":" qop ":" HA2 string GENRESPONSE; if (dictAuthHeaderContents["qop"] != null) { GENRESPONSE = String.Format("{0}:{1}:{2}:{3}:{4}:{5}", HA1, (string)dictAuthHeaderContents["nonce"], (string)dictAuthHeaderContents["nc"], (string)dictAuthHeaderContents["cnonce"], (string)dictAuthHeaderContents["qop"], HA2); } else { GENRESPONSE = String.Format("{0}:{1}:{2}", HA1, (string)dictAuthHeaderContents["nonce"], HA2); } string HGENRESPONSE = CvtHex(GENRESPONSE); // Проверяем nonce bool isNonceStale = !IsValidNonce((string)dictAuthHeaderContents["nonce"]); app.Context.Items["staleNonce"] = isNonceStale; // Сверяем HGENRESPONSE с response заголовка // Проверяем nonce // если всё ok - создаём GenericPrincipal с группами юзера if (((string)dictAuthHeaderContents["response"] == HGENRESPONSE) && (!isNonceStale)) { app.Context.User = new GenericPrincipal(new GenericIdentity(username, "HTTPDigest.Components.AuthDigest"), groups); } else { AccessDenied(app); return; } |
|||
7
Serginio1
16.11.14
✎
21:55
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |