我在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。路径和其他任何正确的方法