---
title: "Vad tror ni är smartast!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/47476-vad-tror-ni-är-smartast/page4"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Nickemannen"
published: "2002-07-08T11:22:44.000Z"
updated: "2002-11-16T22:21:14.000Z"
replies: 92
views: 2408
page: 4
pages: 5
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/47476-vad-tror-ni-är-smartast"
---

# Vad tror ni är smartast!

_Sida 4 av 5._

## #61 — renholm, 2002-07-11T11:30Z

ok, nog om detta nu :)

Permalänk: https://www.webforum.nu/p/719856

## #62 — NETwork, 2002-07-14T19:55Z

Om man får lägga sig i den intensiva uppkopplingsdebatten ;) så finns en annan smidig lösning om ni inte vill kompilera om vid eventuella ändringar... nämligen att lägga in en nyckel i registret och hämta sökvägar och annat skit till databasen från denna. Smidigare än att skapa en xml-fil i alla fall... tycker jag.

Permalänk: https://www.webforum.nu/p/721302

## #63 — kristoffer, 2002-07-14T21:17Z

I registret? Om man programmerar en webbsida?

Permalänk: https://www.webforum.nu/p/721338

## #64 — SPiN, 2002-07-15T09:15Z

Det låter inte som en enkel lösning, eftersom att man då måste ändra i registret på alla burkar som sidan ska köras på. Komponenter och XML-filer är ju bara att tanka upp. :)

Permalänk: https://www.webforum.nu/p/721539

## #65 — NETwork, 2002-07-15T12:04Z

Vi använder registret hela tiden, det finns många fördelar med den metoden, inte minst om du ska sälja applikationen och göra installationsfiler och liknande. Ett alternativt sätt att lösa det på är det i alla fall... helst då tillsammans med en klass mot databasen naturligtvis. 

Jag skulle inte vilja kalla det för "programmera en webbsida" ... programmera en webbapplikation låter mycket trevligare. Det är mer program än "en sida på internet", numera. :)

Permalänk: https://www.webforum.nu/p/721638

## #66 — Nickemannen, 2002-07-15T21:40Z

Okej, men då beror det ju på vad du skall ha det till. Antar att ditt 
exempel är bäst om man skall göra ett intranet.

Och att den inte är det om man gör en såkallad vanlig hemsida?

Permalänk: https://www.webforum.nu/p/722023

## #67 — fredrik, 2002-07-26T10:15Z

Ett annat sätt som jag anser vara det kanske bästa om man vill skydda sin Databas-sträng, är att lägga den i COM+.

Skapa en klass som refererar in "System.EnterpriseServices" och som implementerar "construct"-metoden. Typ:

```
Public Class ComPlusConnStr
    Inherits System.EnterpriseServices.ServicedComponent
    Public Shared strVal As String

    Protected Overrides Sub construct(ByVal strConstructVal As String)
        strVal = strConstructVal
    End Sub
End Class
```

 

Skapa sen en "Strong-key" i .Net prompten:
sn -k c:\\connStr.snk

...och lägg till den i "AsseblyInfo.vb" i klassen som "AssemblyKeyFile":

```
<Assembly: AssemblyKeyFile("C:\connStr.snk")>
```

Lägg till Asseblyn i COM+ via .net Prompten:

```
regsvc /appname:ComPlusConnStr comPlusConnstr.dll
```

En ny applikation har nu skapats i COM+ där Assemblyn ligger.
Högerklicka på Assemblyn i COM+ välj Properties och Activation. 
Kryssa i "Enable Object Construct" och skriv i Databas-stängen i "Constructor string".

Skapa nu ett nytt projekt och referera in både Assemblyt och System.EnterpriseServices.

Nu kan du hämta ut stängen från COM+:

```
Dim obj As New ClsComPlusConnStr.ComPlusConnStr()
MsgBox(obj.strVal)
```

På det sättet kan Sys.Adm. skydda databasstängen, inte bara från olaga intrång, utan även från "obehörigt" folk som kan råkas finnas på kontoret (praktikanter osv).

Lite mer jobb i steg 1, men sen funkar det klockrent!

Permalänk: https://www.webforum.nu/p/730846

## #68 — renholm, 2002-07-27T16:59Z

Registret blir problem om man har grejerna liggandes på ett webhotell. Tror inte de tillåter att man ändrar registret. Den bästa lösningen om man har det liggandes på ett webhotell med bara FTP åtkomst är att lägga det krypterad i appSetting i web.config. Att ha det i konstruktorn för ett databasobjekt i en .aspx sida är lika osäkert som att ha den i web.config.

Permalänk: https://www.webforum.nu/p/731767

## #69 — fredrik, 2002-07-29T06:29Z

Varför skulle det vara osäkert att ha det i konstruktorn?

Permalänk: https://www.webforum.nu/p/732468

## #70 — renholm, 2002-07-29T08:22Z

eftersom om något går snett med .NET som övervakar alla request mot IIS så skulle en .aspx sida kunna visas i klartext. Då kommer ConnectingStringen att stå i klartext med lösenord(om man använder det dvs.) och allt.

Permalänk: https://www.webforum.nu/p/732507

## #71 — NETwork, 2002-07-29T09:01Z

Hm, om något går snett i .net så utgår jag från att den ändå inte av misstag kastar fram hela sidan, VÄL!? Använder du dessutom code-behind så har du ju ingen kod i din .aspx-sida... försök att få fram något ur en dll-fil och du är duktig (om du mot förmodan överhuvudtaget får fram filerna alls).

Permalänk: https://www.webforum.nu/p/732525

## #72 — renholm, 2002-07-29T09:12Z

jag använder CodeBehind, men det exempel SPiN pratade om var utan det vad jag förstod. Det jag menar med går snett är att om t.ex .NET skulle sluta fungera så kommer .aspx sidan behandlas som vilken annan text fil som helst och därmed spotta ur sig hela koden.

Permalänk: https://www.webforum.nu/p/732530

## #73 — fredrik, 2002-07-29T12:05Z

Renholm och NETWork:
Den ligger som tidigare sagt i kontruktorn för COM+ objektet. Inte i kontruktorn för aspx-klassen...

Enda sättet att komma åt den är att starta COM+ hanteraren och därigenom ändra strängen.

I aspx koden skriver man bara:

```
Dim obj As New ClsComPlusConnStr.ComPlusConnStr()
Dim strDBStr = obj.strVal
```

Det är alltså inte kontstruktorn för aspx-klassen.
Fördelen är då även att det är enkelt att ändra databas-sträng (För den om har behörighet till COM+) utan att behöva ändra några assemblys.

Permalänk: https://www.webforum.nu/p/732685

## #74 — renholm, 2002-07-29T12:36Z

ok, men när jag skrev mina inlägg så hade de inget med din COM+ lösning att göra... men den är bra, ska kika mer på sådant.

Permalänk: https://www.webforum.nu/p/732727

## #75 — fredrik, 2002-07-29T12:37Z

Ok! Sorry :)

Permalänk: https://www.webforum.nu/p/732728

## #76 — renholm, 2002-07-29T12:41Z

inga problem :)

men vart exakt placerar man connectionstringen i ditt exempel? :)

Permalänk: https://www.webforum.nu/p/732732

## #77 — fredrik, 2002-07-29T14:55Z

Man lägger in det via COM+ (står i mitt exempel, se några inlägg tidigare...)

> Högerklicka på Assemblyn i COM+ välj Properties och Activation. 
> Kryssa i "Enable Object Construct" och skriv i Databas-stängen i "Constructor string".

Permalänk: https://www.webforum.nu/p/735642

## #78 — renholm, 2002-08-19T09:43Z

Har du något färdigt exempel hur en sådan lösning kan se ut, en hel lösning där COM+ används för att hämta och skriva data.

Permalänk: https://www.webforum.nu/p/756155

## #79 — fredrik, 2002-08-20T12:38Z

Om du följer instruktionen i mitt föregående exempel:
<http://www.webforum.nu/showthread.php?s=&threadid=46514&perpage=25&pagenumber=3#post399776>

så får du all logik i både Assemblyn och i klienten för att använda "Object Construction" från COM+.

I det exemplet gjorde jag bara msgbox på värdet, men det kan lika gärna användas för att öppna en datakälla. ex.

```
Dim obj As New ClsComPlusConnStr.ComPlusConnStr()
Dim cnObj as new sqlConnection(obj.strVal)
```

Permalänk: https://www.webforum.nu/p/756777

## #80 — PatrikB, 2002-08-23T19:55Z

Om vart man ska spara ConnectionStringen så såg jag detta på www.asp.net:

> 9\. Update the Web.config 'connectionString' setting in \<installpath\> to point to the database and to use the uid/pwd of your

I installationsanvisningarna för [ASP.NET Forum](http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=21470)

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/761904

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/47476-vad-tror-ni-är-smartast/page4  
Föregående sida: https://www.webforum.nu/amne/dotnet/47476-vad-tror-ni-är-smartast/page3.md  
Nästa sida: https://www.webforum.nu/amne/dotnet/47476-vad-tror-ni-är-smartast/page5.md
