Håller på med ett system, men kunden vill inte spara viss data på servern utan de vill att varje användare som använder systemet skall ha datat sparat på sin egen maskin.
Någon som vet hur jag skall lösa detta?
Jag vill göra det så enkelt som möjligt för användaren då de i regel har ganska låg datakunskap.
Ok, här är en ganska improviserad lösning. Den bygger på att när en webbläsare öppnar en stylesheet fil(.css) så försöker den att göra det i en texteditor. Den gör det hos mig iaf.
Det första jag gör är att skapa en HttpHandler som skall hantera filer med ändelsen .ashx. Vad handlern gör är att den byter content type på dokumentet den skickar till "text/css" innan den skickar ut den valda datan.
namespace TestFiles
{
internal class FileHandler : IHttpHandler
{
public void ProcessRequest(HttpContext c)
{
string key = c.Request.QueryString["id"];
c.Response.Clear();
c.Response.ContentType = "text/css";
c.Response.Write(c.Cache[key]);
c.Cache.Remove(key);
}
public bool IsReusable
{
get{return false;}
}
}
}
Får att handlern skall funka måste jag lägga till den i inom system.web sektionen i web.config.
Och dess code-behind fil ser ut så här. Häri lägger jag in den valda datan i cachen som sen handlern tar ut. Därefter ger jag hyperlinken ett random filnamn och en .ashx ändelse. Så när nu användaren klickar på Hyperlinken så borde texten öppnas i någon typ av texteditor som sen slutanvändaren kan spara på sin dator.
...
protected HyperLink hp;
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
Bind();
}
private void Bind()
{
string text = "Någon text som du hämtar från var du vill."
string key = Guid.NewGuid().ToString();
Cache[key] = text;
hp.NavigateUrl = string.Format("{0}.ashx?id={1}", Guid.NewGuid().ToString(), key);
}
...
Du kan ju testa detta till och börja med och se om du får det att fungera.
Håller på med ett system, men kunden vill inte spara viss data på servern utan de vill att varje användare som använder systemet skall ha datat sparat på sin egen maskin.
Tycker du skall ta och prata med din kund igen och föklara bristerna i en sådan lösning.
Den största bristen som finns är att system blir knutet till en spcifik maskin. Alltså så förloras hela iden med att göra det webbaserat. En annan stor brist är att det helt plötsligt är upp till användaren att se till så att datan inte försvinner från denns maskin. Om personen får en hårddisk krasch så går datan förlorad. Oftas har man backup på sin server miljö, men inte lika ofta på klientmiljön.
Om en kund hade bett om en sådan lösning, så tror jag nästan att jag hade vägrat att implementera den. Ibland vet inte kunden vad som är bäst för dem själv.
bra lösning, men problemet är att användaren inte kommer att klara av att göra detta, det kommer att bli problem om användaren själv får välja vart han/hon vill spara datat, han/hon kommer att glömma detta och det kommer i sin tur att slå tillbaka på oss.
Sen så är det lite för krångligt att hålla på och skapa sin egen fil, det måste gå automatiskt, detta då datat skall kunna både läsas in till servern när man använder systemet och sedan skrivas på klienten när man vill "spara".
Visst kan man tänka att det är slut i huvudet med att lägga klientdata på sin egen maskin och ja, jag har försökt att få bort den punkten, men de är väldigt klara på just den punkten.
Datat som skall lagras på klienten får nämligen under inga omständigheter ses av någon annan, dvs mycket konfidentiellt.
Du kan ju enkelt skapa ett behörighetssystem för det hela. Då förblir det konfidentiellt. Sen är det bara till att kryptera ner det på serversidan istället
Datat som skall lagras på klienten får nämligen under inga omständigheter ses av någon annan, dvs mycket konfidentiellt.
Då misstänker jag att det handlar om https och krypterad kommunikation mellan klient och server också?
Man skjuter mygg och silar kameler här. Gör som McFetto föreslår. Lägg ner information krypterad i en databas, eller som textfiler där rättigheten sätts med hjälp av NTFS.
Ni gör ju som ni själva vill, men mitt råd är att lägga all information på servern eftersom, som du säger, kommer slå tillbaka på er när klienten mister sin information.
- M
269 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a