簡體   English   中英

如何獲取當前Windows登錄用戶的用戶名?

[英]How do I get the current Windows logged-in user's username?

我正在使用ASP.NET MVC 4開發Intranet應用程序。我正在使用自定義表單身份驗證。 當用戶訪問該應用程序時,我要使用該用戶的Windows登錄用戶名並在我的數據庫中檢查該用戶名。 但是我不知道如何使用該用戶名。 我嘗試使用以下代碼:

string CurLoggedInUsername = Environment.UserName;

當我從Visual Studio運行時,這給了我用戶名,但是當我在IIS上托管我的應用程序時,它給出了一個奇怪的值。 我也嘗試使用

string CurLoggedInUsername = httpcontext.current.user.identity.name;

但沒有用。 有沒有辦法在身份驗證之前獲取用戶的Windows登錄用戶名?

聽起來您可能需要考慮混合模式身份驗證。 即Windows和窗體身份驗證。 問題是他們並不一定會打得很好。

下面的文章介紹了該問題及其解決方法。 本文的重點圍繞IIS 7集成模式下401質詢(Windows身份驗證)和302重定向(表單身份驗證)如何不兼容以及使用幾種表單和HTTP管道攔截獲取用戶詳細信息的方式。 我成功地將這種方法用於大型公共部門客戶(盡管適用於Webforms應用程序)。 我確定原理是相同的。

帶有表單身份驗證和Windows身份驗證的IIS 7.0兩級身份驗證

我忘記在代碼示例中添加顯示Windows身份驗證憑據的正確位置。 已經有一段時間了,所以我記不起來了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM