Debug. raw HttpContext.Items state (TagHelper input)
AggregatedEvidence present: False BotDetectionResult present: False
Behaviour-aware Razor
This page is rendered by ASP.NET Core MVC with StyloBot middleware in
process. No gateway, no third-party service, no JavaScript on the
client. Every <sb-*> tag below reads from the same
DetectionDisplayModel the detection pipeline populated
before this view started rendering.
?demo=<preset> to any URL. Same code path as the
ml-bot-test-mode header; opt-in via
BotDetection:TestModeQueryParam.
1. Your fingerprint card (<bot-detection-details />)
Per-request fingerprint computed by the in-process detection pipeline.
Verdict, bot probability, risk band, recommended action, top reasons,
and the centroid-projection radar. all read from the same
DetectionDisplayModel the detection middleware populated
before this view rendered. The whole upper card links to your
signature's detail page on the embedded dashboard at
/_stylobot.
No bot detection data available
2. Compact detection card (<sb-summary variant="card" />)
Same detection data, condensed into the inline card the dashboard uses on dense rows. Drop-in for a sidebar, a row badge, or a wide inline indicator next to a CTA.
3. Risk-gated content (<sb-risk>)
Welcome back. You scored Low risk. full
access. This block is wrapped in
<sb-risk max="Low"> so it renders only
for visitors the engine classifies as Low or VeryLow.
<sb-risk min="Elevated" max="Medium">.
<sb-risk min="High">.
4. Signal-driven variation (<sb-signal>)
You appear to be on a datacentre IP. Some features disabled.
You're on an anonymised network. Limited content only.
Detected as a declared bot. If you're a verified crawler, you're allowed; otherwise the route handlers downstream will reject you.
Treated as a human visitor by the User-Agent detector.
5. Honeypot form (<sb-honeypot />)
This form contains three offscreen trap fields. Humans don't see them; bots fill them in. View source to confirm they're there.
6. Inline signal table (<vc:sb-all-signals show-descriptions="false" />)
Condensed inline form of the All signals page. Renders every key/value pair the detection pipeline wrote to this request's signal blackboard, grouped by namespace prefix. Same view component the dedicated /Home/Signals page uses, just with the longform descriptions collapsed for embedding.
No signals on this request. The detection pipeline either has not run yet or this request skipped detection.
7. Endpoint traffic shaping
The opening Razor view from the talk also wires up three minimal-API endpoints at the routing layer:
GET /api/data..BlockBots(): all bots refused. Try it.GET /sitemap.xml..BlockBots(allowVerifiedBots: true, allowSearchEngines: true). Try it.POST /api/login..BotPolicy("strict", blockThreshold: 0.5).
Tip: hit /api/data while demo mode is set to
scrapy or curl and watch it 403.