2012-03-28 116 views
1

我正在爲一個客戶的新項目工作,我們將在這裏存儲一些重要的在線數據。我已經給了一箇舊的訪問數據庫,我轉換到MS SQL,現在我想知道我應該使用什麼樣的登錄&安全。ASP.NET登錄和安全

我要運行該網站關閉SSL,但我不是100%確定如果我應該與表單身份驗證或不同的東西。

任何意見將不勝感激。

回答

1

如果你在公共互聯網上運行這個話,肯定使用SSL來加密會員相關的交易。使用SSL的「成本」很低 - Packet-sniffing和Firesheep-like工具的風險可能非常高。

基本身份驗證是確定的,但我會忍不住與窗體身份驗證去只是因爲你可以控制的註冊和登錄體驗 - 指導用戶,驗證碼等..

+0

感謝您的回覆!形式似乎是最好的方式! – bExplosion 2012-03-28 08:10:27

1

是去與窗體身份驗證作爲安全的第一部分。爲什麼?因爲所有這些登錄都基於cookie,基本思想通過表單身份驗證非常有效。

現在,您需要添加額外措施來保護您的數據,例如。

  1. 確保您設置正確的形式驗證 - 裁判:Can some hacker steal the cookie from a user and login with that name on a web site?
  2. 保留所有登錄從用戶連同IP地址和其它信息,並認識到事情的模式是怎麼了。 ref:https://stackoverflow.com/a/9645770/159270
  3. 爲某些關鍵操作添加額外的安全密碼。
  4. 添加並使用不同級別的安全性。
  5. 除了身份驗證表單,爲管理員添加額外的登錄安全測試,一個測試,你可以找到,並且只能從高權限的人那裏知道。
2

如果你要在內部唯一的應用程序工作,使用Windows身份驗證。這將工作外的開箱,只需要你使用:

<authentication mode="Windows"/> 

如果你想使用窗體身份驗證,您可以構建自己的存儲和加密機制,這需要一些工作。或者在數據庫中添加一些表格,以便ASP.NET輕鬆提供用戶名,密碼和忘記密碼功能。這是通過運行一個命令提示符工具,將增加必要的表爲你實現:

aspnet_regsql.exe

這將啓動一個嚮導,允許您配置要添加到SQL Server的功能。

要只是在SQL添加會員表格,登錄爲您的登錄帳戶使用:

aspnet_reqsql.exe -S <server> -D <database> -A m -E

或者,如果你要連接一個特定的用戶,使用:

aspnet_reqsql.exe -S <server> -D <database> -A m -U <username> -P <password>

這是一個指向how to use Forms Authentication with SQL Server in ASP.NET 2.0教程的鏈接。作爲ASP.NET 2.0,它看起來過時了,但在任何版本的ASP.NET V2及更高版本中都是相同的。