iT邦幫忙

0

系統開發問題,請求DOT NET相關人士解惑

  • 分享至 

  • xImage

最近敝公司在進行系統開發的流程
在系統即將上線前我才進入了這個專案小組且固定參與會議
但上個月上線後我發現了一個頗異常的狀況
就是這個Web介面的系統在按了登出且關閉IE後
重新開啟IE進入系統網址就會自動登入不必再重新打一次帳號密碼了..........

在上個月底的會議中我有將這個問題提出來
但廠商沒有給我正面的回應
這週我覺得問題有點大
到時被稽核我們會整個很頭痛於是再度提出這個問題
結果今天早上廠商回電給我的答覆是
因為當初決定這個系統的帳號密碼綁AD
所以在Windows未登出的狀況之下
該系統無法因為登出而再次輸入帳號密碼的問題是"正常"的
聽完我一整個很想翻桌................

但因為個人對於程式設計的駑頓
為尋求發言時更加有說服力
因為又來請求大家的建議
請多多包涵 Orz

補充說明

  1. 我不清楚該系統用何種dot net語言撰寫,但應該是ASP.Net
  2. 系統架構為Windows 2003 server + dot net 1.1 + SQL Server 2000
我的想法是這樣的

1.系統要使用帳號密碼登入,這是一般共識
2.「帳號密碼綁AD」一來是讓使用者少記一組帳密,二來是管理人員方便集中控管帳號
3.在按了登出且關閉IE後,重新開啟IE進入系統網址就會自動登入
這點我就比較不同意

兩點原因:
i.因為那個「登出」的按鈕就等於沒有用了, 浪費時間
ii.如果是因為「帳密綁AD, Windows沒登出」而無法「登出」的話
以對等的觀念來看
那一開始又何必多一道登入手續呢?
只要Windows一登入(使用者已通過AD驗證)
IE一開就能使用系統
不是更好?

結論
a.就技術面而言, 我投你的觀念一票
b.就事務面而言, 建議拿貴公司的稽核來壓驗收程序
charles502 iT邦研究生 5 級 ‧ 2010-03-18 17:13:05 檢舉
感謝您的寶貴意見
也感謝每次都蒙您花心思答覆
1、2我都認同
但是3真的是一件很詭異的事
只是我缺乏一個強有力的說法支持我
所以來尋求大家的幫忙
感謝再感謝
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
6
賽門
iT邦超人 1 級 ‧ 2010-03-18 15:47:15
最佳解答

我想, 版大的問題是集中在不要自動登入, 每次登出離開系統或關閉IE結束系統後, 下次執行系統時會一定要到登入功能中輸入正確帳號和密碼, 才能進入系統操作.
我這樣的認知是正確的話, 我的解釋是:

  1. IE預設會詢問是否啟用自動完成, 如果一開始選擇要自動完成, 就會把帳號密碼資料自動記下來, 這時可以把'自動完成'的功能取消
  2. 有些系統會寫成可以選擇自動登入, 也就是把帳號密碼寫到Cookie或另一個地方(一個系統XML檔案), 這樣就會自動登入, 這時, 請用IE的刪除歷程錄功能, 將歷史資料刪掉...下一次執行系統出現登入頁面時, 那個自動登入的選項不要勾就行了...
    其實要不要自動登入都是程式設計上的考量結果, 但是, 一個系統有登入網頁, 就存在一定的保密要求, 照廠商的說法, 我也是不太能夠接受.
    如果前兩個方法都試過, 還是自動完成登入, 那就不是IE控制的機制了, 是程式中控制的機制, 要改程式, 這方面就要有原始程式碼才能幫忙囉.
charles502 iT邦研究生 5 級 ‧ 2010-03-18 16:17:13 檢舉

跟您回應這個問題
您的認知是正確的,我只是需要那個登入帳號密碼的畫面
但我的見解是

  1. 自動完成應該是記憶帳號的地方,跟密碼無關,密碼應該是另外有一個"記憶我的密碼"
  2. 他們的確是寫成自動登入,但我希望他們把這個改掉卻沒得到我想要的答案
4
Ray
iT邦大神 1 級 ‧ 2010-03-18 16:02:49

這代表, 廠商只會寫 AP, 不會管理 AD 和 IE....

請打開 IE, 設定: 工具> 網際網路選項 > 安全性 > 近端內部網路 > 網站

取消: 自動偵測內部網路, 以及底下的所有選項. 如果有其他需要自動登入的公司網站, 請按: 進階, 以手動方式將網址輸入到這裡面, 否則就不需要再設定. 只要網址不加入進階裡面, 就不會被自動登入

如果一台一台設定很麻煩, 可以透過 AD 用 Group Policy 強制限制, 請在 DC 管理台執行: gpedit.msc 進入:
使用者設定\系統管理範本\Windows 元件\Internet Explorer\網際網路控制台\安全性網頁\內部網路區域, 選右邊的登入選項, 改成: 已啟用, 下面選: 提示輸入使用者名稱及密碼, 就不用一台一台去設定.

只要是通過微軟認證合格的 Enterprise Administration MCITP 人員, 應該都知道以上設定....

看更多先前的回應...收起先前的回應...
charles502 iT邦研究生 5 級 ‧ 2010-03-18 16:18:45 檢舉

您好
在敝公司所有的員工都鎖定了網際網路選項的使用
透過Policy派發是個方法
但是我不認同一個系統不去修改程式碼而要靠其他的方式去處理這個問題
感謝您的回應

charles502 iT邦研究生 5 級 ‧ 2010-03-18 16:35:53 檢舉

補充回應
修改使用者設定的確是個好辦法
但這個AP的最大問題是
他按了登出後有個確認登出的按鈕
繼續按下去還有個登入的按鈕
那個登入按下去也不必打帳號密碼就進去了.........
也就是說
使用者如果沒把IE視窗關閉的話
這個設定是無效的

Ray iT邦大神 1 級 ‧ 2010-03-18 17:50:45 檢舉

您說的這個現象, 用得到的人叫 *功能*, 用不到的叫 *Bug*....

這是微軟的設計, 主要是為了方便 Domain User 做 SSO 登入, 而且, 這個功能是綁定在 IE 裡面的, 除非 AP 廠商有能力改 IE (...但誰有能力?), 要不然, 就要放棄使用 Windows 整合驗證, 改用表單式驗證, 就可以避開這個問題.

小成 iT邦高手 10 級 ‧ 2010-03-18 20:46:13 檢舉

我覺得是雙方沒溝通好...
誠如樓上說的功能跟bug的差別

charles502 iT邦研究生 5 級 ‧ 2010-03-19 12:03:29 檢舉

TO:raytracy
蒙您指教
您的意思是說
倘若廠商採用的是整合驗證
那這個無法登出的問題就無法解決嗎??
除了更改使用者設定以外
抱歉在這一部分我真的全然未知

dscwferp iT邦高手 1 級 ‧ 2010-03-20 23:23:53 檢舉

charles502提到:
charles502 說:
TO:raytracy
蒙您指教
您的意思是說
倘若廠商採用的是整合驗證
那這個無法登出的問題就無法解決嗎??
除了更改使用者設定以外
抱歉在這一部分我真的全然未知

YES!
這是 ms 綁定的!

4
mybeldandy
iT邦研究生 5 級 ‧ 2010-03-18 17:29:15

跟AD相同有好處有壞處
好處是不用重複打帳密
壞處是如果需要重複打帳密需要另外處理
其實很簡單
另外在程式中AD檢查過之後再加個一檢查是否登入的欄位
不過我看可能要記錄在資料庫
如果資料庫中那個值是否 就要重新打帳密
然後在登出的時候去資料庫把值改成否
登進去的時候改成是

4
protech
iT邦新手 2 級 ‧ 2010-03-19 11:38:55

如果真是像版主所說的,系統一開始還有登入畫面,也使用AD的帳號作為登入的驗證,但是到後面卻在登出之後還可以立即回到系統中而不用再次登入,那只能說是廠商在晃點版主的公司了。
話說回來,如果版主真的希望每次都會出現登入畫面,而且要真的有使用AD再一次執行身分驗證的話,可以使用以下的方式:
第一、強迫廠商改用表單驗證模式,無論如何必須先進入登入畫面(而且務必要加密,例如使用SSL)。
第二、讓使用者輸入AD帳號與密碼。
第三、請廠商使用Impersonate的方式驗證使用者的登入,來驗證使用者身份的正確性。
第四、儘可能使用Session來存放驗證旗號(Cookie也可以,但是我想會比較麻煩一點),如果Session過期,就要強迫自動導回到登入畫面。

但是這樣的作法比較討厭的是:
第一、因為程式有機會直接處理使用者的密碼,需要嚴防小人。
第二、使用者常常會因為畫面放太久而需要重新登入,容易招致民怨。

charles502 iT邦研究生 5 級 ‧ 2010-03-19 13:49:37 檢舉

您好
先感謝回覆
我有一個疑問
就是如果我只是想要他那個登出的功能真的可以登出
也就是按了登出真的可以清除使用者登入訊息的話
這樣也要改成表單驗證模式嗎??

protech iT邦新手 2 級 ‧ 2010-03-19 15:07:17 檢舉

由於IE本身的預設功能會自動在登入進端的網路伺服器時,自動以該電腦使用者的身分嘗試登入,而不幸的是一定會登入成功,所以這裡所使用的登出功能算是形同虛設的。
換句話說,你第一次登入的畫面做的其實是假動作,任何AD的帳號都會有一樣的狀況。
如果你希望該登出功能是有效的,但是卻又要維持現在這種使用AD驗證的方式,那麼前面mybeldandy所提的方法是一個可行的選擇。

4
keroroiii
iT邦新手 5 級 ‧ 2010-03-19 22:47:08

這是認證方式不同, 一般用form, windows整合, 而windows就由AD來認使用者.
若果, 不想打破原有架構, 最快是購買一套single site-on的套裝軟體.
把原來的驗證程式碼mark掉,我想應該是用同一個公用程式吧, 不花什麼工.
再設定iis為匿名存取.
最後, 安裝/設定好sso的realm和policy等等, 就可以上線了.
而sso, 有通過AD時, 他會主動認AD.
沒登入時, 他會要你輸入一組有權限的account. 當然, 不會要求和windows同一組的.
這就方便多了.

我要發表回答

立即登入回答