2015-06-15 23 views
0

我有一個表,我列出了Ips允許訪問的服務。我的服務是如何顯示一個定製的Windows身份驗證與SQL服務器

網站/ service.asmx

中,有數以百計的Web方法。

the Table name: IPTable 
Column: IP nvarchar(max) 
    202.192.25.150 
    215.215.215.215 
    115.119.185.199 

當任何人打在上面的服務的話,首先它檢查請求的IP地址,假設如果在該列表中,然後打開Windows身份驗證彈出(定製)*,否則將在根網站根重定向。 *自定義:通過Windows身份驗證我的意思是用戶/密碼將檢查從SQL Server的表H_user沒有真正的Windows用戶,

所以我的問題是隻有這可能顯示自定義的Windows身份驗證?

+0

你如何做到這一點?一個webservice沒有任何接口。 – Mairaj

+0

如果從Linux或MAC機器調用服務會怎麼樣?爲什麼你想表明這一點。該服務的消費者將管理。你只需要關注認證。返回說明無效用戶的故障或異常。 – Amit

+0

是的Mairaj你是對的,但這是公司要求隱藏當前打開的Web方法,以查看該服務中有多少webmethods。第二,如果我們使用Windows身份驗證進行身份驗證,那麼問題是當我們從一臺服務器到另一個然後我們也必須創建Windows用戶,但如果我們去定製認證(SQL服務器後端),那麼它很容易處理。 –

回答

0

我不確定我們如何才能實現這個要求的Windows身份驗證。 但是我們可以實現如下的定製認證。

  • 創建身份驗證方法
    • 使用Request.UserHostAddress以獲取客戶端IP地址
    • 檢查請求的IP地址是否有效(從表中)
    • 如果有效返回true,否則返回false
  • 在每個Web方法中調用此驗證方法
  • 如果返回true proc接下來;否則重定向到根網站

驗證方法簽名:

public bool isAuthenticatedUser() 
{ 
    -- get requested ip address 
    -- check that requested ip address is available or not 
    -- if requested ip address is available in DB then allow to proceed; else redirect to root site 
} 

呼叫在主要的方法。

+0

可以請你分享我一些參考鏈接的定製認證後臺的SQL服務器,它看起來像Windows認證彈出窗口。 –

+0

爲什麼你需要向用戶顯示認證彈出窗口?在那種情況下,憑證用戶將輸入什麼?我的建議是實現身份驗證作爲後臺進程。 – Balamurugan

相關問題