Ահա սցենարը.
Ես ունեմ մուտքի էջ, երբ օգտվողը ստորագրում է այն, այն վերահղվում է դեպի հիմնական հավելվածի էջ: Այնուհետև օգտագործողը օգտագործում է դիտարկիչի հետ կոճակը, և այժմ նա մուտքի էջում է: Նա նորից փորձում է մուտք գործել, բայց հիմա բացառություն է արվում.
HttpAntiForgeryException (0x80004005). Տրամադրված կեղծիքների դեմ նշանը նախատեսված էր «» օգտագործողի համար, սակայն ներկայիս օգտվողը «userName» է:
Ես գիտեմ, որ սա կապված է քեշավորման հետ: Ես անջատել եմ բրաուզերի քեշավորումը մուտքի գործողության համար՝ օգտագործելով սովորական NoCache ֆիլտրը, որը սահմանում է բոլոր պահանջվող վերնագրերը՝ no-cache, no-store, must-revalidate և այլն:
- սա չի աշխատում բոլոր բրաուզերների վրա
- հատկապես Safari-ն (շատ դեպքերում բջջային) բացարձակապես անտեսում է նման կարգավորումները
Ես կփորձեմ հաքերներ անել և ստիպել Safari Mobile-ին թարմացնել, բայց դա այն չէ, ինչ ես սպասում եմ:
Ես կցանկանայի իմանալ, թե արդյոք կարող եմ.
- կարգավորել բացառությունը՝ չցուցադրելով օգտատիրոջը որևէ խնդիր (օգտագործողի համար լիովին թափանցիկ)
- կանխեք այս խնդիրը՝ փոխարինելով հակակեղծված նշանի օգտատիրոջ անունը, որը թույլ կտա օգտվողին նորից մուտք գործել առանց այս բացառության, եթե բրաուզերի քեշավորման հետ կապված իմ հաքերները դադարեցնեն աշխատել բրաուզերների հաջորդ տարբերակներում:
- Ես իսկապես կցանկանայի չհիմնվել բրաուզերի վարքագծի վրա, քանի որ յուրաքանչյուրն իրեն այլ կերպ է պահում:
ԹԱՐՄԱՑՆԵԼ 1
Որոշ պարզաբանումներ անելու համար ես գիտեմ, թե ինչպես վարվել MVC-ում սխալների հետ: Խնդիրն այն է, որ սխալների հետ վարվելը բացարձակապես չի լուծում իմ խնդիրը: Սխալների հետ կապված հիմնական գաղափարը վերահղում է դեպի հարմարեցված սխալի էջ՝ գեղեցիկ հաղորդագրությամբ: Բայց ես ուզում եմ կանխել այս սխալը, այլ ոչ թե կառավարել այն օգտագործողի տեսանելի ձևով: Բռնակ ասելով նկատի ունեմ catch make username-ը փոխարինել կամ այլ հարմար գործողություն, ապա շարունակել մուտքը:
ԹԱՐՄԱՑՆԵԼ 2
Ես ներքևում ավելացրել եմ լուծում, որն աշխատում է ինձ համար: