FAQ |
Kalender |
2014-06-13, 16:16 | #1 | ||
|
|||
Mycket flitig postare
|
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! |
||
Svara med citat |
2014-06-14, 12:36 | #2 | ||
|
|||
Supermoderator
|
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 Zetterström se.linkedin.com/in/jonnyz | bjz.se | sajthotellet.com | kalsongkungen.se | zretail.se | zetterstromnetworks.se | webbhotellsguide.se | ekonominyheter24.se | nyamobiltelefoner.se | gapskratt.se | antivirusguiden.se | jonny.nu |
||
Svara med citat |
2014-06-14, 23:52 | #3 | ||
|
|||
Supermoderator
|
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 |
||
Svara med citat |
2014-06-15, 11:25 | #4 | ||
|
|||
Mycket flitig postare
|
Citat:
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? |
||
Svara med citat |
2014-06-16, 09:37 | #5 | ||
|
|||
Har WN som tidsfördriv
|
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. |
||
Svara med citat |
2014-06-16, 13:01 | #6 | ||
|
|||
Mycket flitig postare
|
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. |
||
Svara med citat |
2014-06-16, 13:39 | #7 | ||
|
|||
Klarade millennium-buggen
|
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. |
||
Svara med citat |
2014-06-19, 20:13 | #8 | ||
|
|||
Medlem
|
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. |
||
Svara med citat |
Svara |
|
|