这里有一些背景!
我使用默认的 Intranet 模板开发了一个小型 Asp.Net MVC 4 Intranet 站点,并且正在使用Windows Authentication
. 我还添加了一个Web Api Controller
并在其中编写了一些 REST 服务方法,我使用 JQuery 从站点页面访问这些方法。Web.Config
包含以下内容:
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
该网站运行良好,它需要用户提供他们Windows Credentials
才能访问该网站。
问题
我还在开发一个 Windows 服务,它将在网络上的另一台计算机上运行,并将访问Windows API controller
我在上一步中创建的操作之一。现在的问题是我无法Windows Credentials
从 Windows 服务中提供 RESTful API 方法......因为没有用户可能使用该系统......我希望你明白我的意思:
我试过什么
- 允许
Anonymous Authentication
在True
Web 项目的属性中。然后AllowAnonymous
在 web api 方法上使用属性。不工作。 我虽然为什么不创建另一个
AuthorizationFilterAttribute
仅应用于要从窗口服务访问的 API 方法的方法。这样,新功能将覆盖现有Windows Authentication
功能,我将能够为 BASIC 身份验证提供我选择的用户名/密码,该身份验证只能从 Windows 服务中使用。所以我AuthorizationFilterAttribute
通过帮助创建了一个新类因此,我在Rick Strahl 的博客的。[AllowAnonymous] [AuthorizeCallFromWindowsService] public IssueResponse CloseEmployeeLicenses(int userID) { return null; }
同样,这不起作用。API 方法需要相同的 Windows 身份验证凭据,我想使用自定义硬编码的用户名/密码。
你会提出什么建议?提前致谢。