2011-07-28 36 views
1

需要在Intranet站點上標識用戶,Windows用戶名是目標。這將附加到SQL Server到最後的參數。ASP.NET從AD獲取關於用戶的數據

我能得到HttpContext.Current.Request.ServerVariables("LOCAL_ADDR") 192.168.112.81

我們有地址的魚龍混雜這裏,在這33%是固定的,其餘的分配。

有沒有辦法在AD內識別分配給IP的用戶?如果是這樣,你有鏈接或例子?

TIA。

+0

你是什麼意思「識別分配給AD內的IP的用戶」? – hatchet

+0

當前連接的IP在AD中是不可用的 - AD是一個相當靜態的信息存儲庫 - 它不是**一個「操作管理」系統,用於處理登錄的用戶及其IP和那樣的東西。 –

回答

2

在一個頁面,用戶名可以發現:

Page.User.Identity.Name 

HttpContext.Current.User.Identity.Name 

或服務呼叫

ServiceSecurityContext.Current.WindowsIdentity.Name 

它將由域作爲前綴。

+0

對不起,但我得到這兩個在一個頁面中的空字符串: – SteveO

+0

好吧,聽起來像您的網站在IIS中配置,以允許匿名訪問。查找asp.net的asp.net Windows身份驗證設置。有很多關於它的信息。 – Erix

+0

請參閱@blowdart答案 - 您是否在Web應用程序中配置了身份驗證? – hatchet

0

IP未分配給用戶,它們被分配給機器。不止一個用戶可以使用一臺機器,所以你的方法沒有意義。

而是在您的站點上配置Windows Authentication,然後您可以使用MVC控制器中的User屬性或webforms頁面中的User屬性。這兩個屬性都返回一個IPrincipal,後者又具有一個Identity屬性,該屬性爲IIdentity實例。該身份的name屬性將爲您提供用戶的帳戶名稱。

+0

謝謝。我現在正在尋找。 – SteveO