Kom ihåg mig?
Home Menu

Menu


URL-struktur per zon (ASP.NET MVC)

Ämnesverktyg Visningsalternativ
Oläst 2014-06-13, 16:16 #1
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
Standard URL-struktur per zon (ASP.NET MVC)

Hej!
Jag bygger en webbapplikation i ASP.NET MVC och jag behöver ge användare möjligheten att kunna administrera flera "zoner" från samma inloggning. Exempel: Ett företag har flera butiker och chefen vill från sin inloggning administrera var och en från samma inloggning.
Jag behöver således veta i varje request vilken zon som avses. För en användare som bara har tillgång till en zon är det inget problem men jag måste kunna hantera flera som sagt.

Nu ser mina urler ut så här (utan zon-info):
~/items/edit/12345678-9012-3456-7890-123456789012
~/categories/edit/11111111-2222-3333-4444-555555666666

Alla poster i databasen har en GUID som jag använder i URL. Varje zon har en GUID som jag vill ha med. Jag kan skicka zon-info som cookie men det känns inte helt rätt. Å andra sidan blir det mindre clutter i urlerna.

En variant som jag tänkte är att använda zonens guid som prefix i url (innan controller/action)

~/99999999-8888-7777-6666-555555444444/items
~/99999999-8888-7777-6666-555555444444/items/edit/12345678-9012-3456-7890-123456789012
~/99999999-8888-7777-6666-555555444444/categories
~/99999999-8888-7777-6666-555555444444/categories/edit/11111111-2222-3333-4444-555555666666

Alternativt som query string

~/items/edit/12345678-9012-3456-7890-123456789012?zone=99999999-8888-7777-6666-555555444444
~/categories/edit/11111111-2222-3333-4444-555555666666?zone=99999999-8888-7777-6666-555555444444

Inte så snyggt

Är det bad practice att lägga zone-id i cookies?

Sen är det även så att en användare som har tillgång till flera zoner kan flytta saker emellan, så varje item är taggad med zon som går att ändra. Det innebär att i formulären så kommer det bli ett fält för zon som har default-värde till den aktuella zonen men kan ändras till någon annan tillgänglig zon.

Kommer ha en "zone selection" i sidhuvudet så man enkelt kan växla mellan zonerna.

Tankar?

Tack på förhand. Ha en bra helg!
qson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2014-06-14, 12:36 #2
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
Jag vet inte om snygga URL:er är så noga, framförallt eftersom GUID ser hemskt ut redan från början. Varför inte använda POST och slippa visa för användaren vad som skickas?
jonny är inte uppkopplad   Svara med citatSvara med citat
Oläst 2014-06-14, 23:52 #3
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Om du vill ha snygga url:er så lägg inte irrelevant nonsens (ur besökarens synvinkel det vill säga) där alls utan där ska i så fall bara finnas en logisk och tydlig struktur. GUID är i så fall ett exempel på sådant du bör hålla borta från url:en. Om du inte bryr dig om detta så spelar det naturligtvis mindre roll, då kan du välja vilket som helst av dina mer eller mindre "fula" alternativ
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2014-06-15, 11:25 #4
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
Citat:
Ursprungligen postat av jonny Visa inlägg
Jag vet inte om snygga URL:er är så noga, framförallt eftersom GUID ser hemskt ut redan från början. Varför inte använda POST och slippa visa för användaren vad som skickas?
Jag använder POST så fort ett formulär skall skickas. Dock behöver jag i varje request veta vilken zon användaren valt. Jag kan inte ha POST i all navigation. Jag håller helt med att GUID är fult som stryk i URL men jag accepterade det när det låg sist i urlen (item-guid). Att ha zon-guid först och item-guid sist känns inte bra. Långt och otydligt.

Har ni förslag på hur jag kan hålla reda på vilken zon användaren valt utan att använda POST för all navigation på sidan och utan att ha den i URL. Cookies? Sessions? Annat?
qson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2014-06-16, 09:37 #5
jayzee jayzee är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2008
Inlägg: 1 089
jayzee jayzee är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2008
Inlägg: 1 089
Sätt det antingen som en cookie eller sessionvariabel vid inloggning/byte av zon.
Du får såklart lägga på logik som kollar att användaren har tillträde till angiven zon.
jayzee är inte uppkopplad   Svara med citatSvara med citat
Oläst 2014-06-16, 13:01 #6
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
Det är kontroller serverside om man har tillgång till zonen eller ej. Funderar på hur användarupplevelsen är om man har flera flikar samtidigt där zonen lagras i cookies. Då kan du inte ha två olika zoner i var sin flik utan att de skriver över varandra, eller? Om jag i flik 1 väljer zon 1 och i flik 2 väljer zon 2, sedan klickar jag på en länk i flik 1, då kommer den navigera in på zon 2 också eftersom cookies säger så.
Målet är att hela interfacet så småningom skall bli ajax-baserat och då kan jag skicka som query-string i ajax-anrop och komma ihåg med sessionStorage eller lokal variabel men just nu är det vanliga GET/POST som gäller tyvärr.

Det lutar kanske åt sessionsvariabler ändå, trots strul med flera flikar.
qson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2014-06-16, 13:39 #7
allstars allstars är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Apr 2006
Inlägg: 2 126
allstars allstars är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Apr 2006
Inlägg: 2 126
I ett liknande scenario använde jag session-variablar.

Hade man öppen flera fönster så kunde det bli knas om man var inne på olika zoner. URL-metoden löser ju det, men blir fult imo.
allstars är inte uppkopplad   Svara med citatSvara med citat
Oläst 2014-06-19, 20:13 #8
Reager Reager är inte uppkopplad
Medlem
 
Reg.datum: Aug 2007
Inlägg: 151
Reager Reager är inte uppkopplad
Medlem
 
Reg.datum: Aug 2007
Inlägg: 151
Om du har problem med hur URL:erna ser ut kan du ju alltid bygga en mappningstabell och ha vad du nu tycker är snyggt som zon-namn så att

zon1 = Guid1
zon2 = Guid2

och adressen blir således

zon1/items

t.ex.
Reager är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 09:46.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017