簡體   English   中英

c# .net Web Api Windows 和匿名身份驗證獲取當前用戶

[英]c# .net Web Api Windows and Anonymous Authentication get current user

我試圖獲得本地用戶,但我沒有回報。

  • 網絡接口
  • IIS (10) 視窗 10

我的 IIS 已啟用:

  • 視窗
  • 基本的
  • 匿名的

Visual Studio 2017 C# .net 4.6.1

我已經嘗試標記網絡配置:

  <authorization>
  <allow users="?" />
</authorization>
AND
<identity impersonate="false" />
<authentication mode="Windows" />

代碼 WebApi

 [HttpGet]
    [Authorize]//I already tried [AllowAnonymous]
    public User Get()
    {
        System.Net.NetworkCredential SystemCredential = (System.Net.NetworkCredential)ADUtil.SystemCredential();
        string login = HttpContextUtil.Request.LogonUserIdentity.Name;
error here, login return 'NT AUTHORITY\IUSR'.
}

您不能在應用程序中混合身份驗證模式而不會陷入混亂。 你必須選擇一個並堅持下去。

AllowAnonymous屬性讓您無需身份驗證即可訪問特定控制器。 它們是否經過身份驗證取決於您的身份驗證方法。 它通常用於訪問登錄頁面,但也可用於不需要限制訪問的站點區域。

可能最簡單的方法是在 IIS 中禁用除“Windows”之外的所有內容

正如這里提到的如果你想允許用戶通過 Windows 身份驗證請求匿名和其他人,你最好的方法是為每個AuthenticationScheme呈現兩個不同的子路徑,例如為匿名請求定義一個路由,如/anonymous/{controller}/{action} ,一個用於Windows認證請求/windows/{controller}/{action} 因此,您不必雙重實現控制器,但缺點是您必須為同一個模塊運行兩個連接。

暫無
暫無

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

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