ASP.NET WebApi中的Windows身份验证

时间:2018-07-17 09:17:13

标签: c# asp.net authentication

我在ASP.NET MVC 5项目中需要Windows身份验证。出于某种原因,我必须在该主项目上禁用win auth(将无法解释)。所以老板告诉我,将授权和身份验证放在另一个项目中。我不想再问他这是如何工作的,所以我开始研究和建造。

这是我到目前为止所拥有的。这不起作用。

  

用于前端的MVC控制器

public async Task<ActionResult> WiaCheck() {
        using (var client = new HttpClient()) {
            string domain = WebConfigurationManager.AppSettings["AuthService"];
            Uri uri = new Uri(domain + "/api/Auth");
            var response = await client.GetAsync(uri);
            var textResult = await response.Content.ReadAsStringAsync();
            return Json(textResult);
        }
}
  

Api控制器

[HttpGet]
[Authorize]
public bool WiaCheck() {
    string username = User.Identity.Name.Substring(User.Identity.Name.IndexOf('\\') + 1);

   ....
}
  

Web.config MVC

<authentication mode="Windows" />
<authorization>
  <allow users="*" />
</authorization>
  

Web.config WebApi

<authentication mode="Windows" />
<authorization>
  <deny users="?" />
</authorization>

已启用Windows身份验证。 Authorize-Tag阻止了所​​有请求。

如果我在浏览器中测试WebApi,则会要求我输入用户名和密码,因此可以正常工作。

我的问题是: 我必须如何组织此工作才能使其生效,或者必须发送给我什么,以确保授权有效

P.S。路径和其他任何正确的方法

0 个答案:

没有答案