我正在尝试使用 Azure ACS 配置新的 MVC5 应用程序,但我在将项目连接到联合端点方面运气不佳。
我首先创建一个 ACS(命名空间、idp 和 RP)。我的 RP 的 URI 是:http://localhost/ACSDemo。
联合元数据端点 url 是
https://hmhacsdemo.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml
在 VS (2013) 中,我创建一个新的 Web 应用程序,选择 MVC 并将身份验证选项更改为“组织帐户”,将类型指定为“本地”,然后提供我的元数据 url 和应用程序 URI,然后单击“确定”。
单击“确定”创建项目。 VS 旋转了一下,然后我看到了我的解决方案。在 web.config 中我找到以下应用程序设置:
<add key="ida:AdfsMetadataEndpoint" value="https://hmhacsdemo.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml" />
<add key="ida:Audience" value="http://localhost/ACSDemo" />
但在我的 web.config 中没有其他配置部分引用身份。
接下来,我转到 Home Controller 并通过在 Controller 类上放置“Authorize”属性来保护端点
[Authorize]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Title = "Home Page";
return View();
}
}
但是,当我尝试浏览网站(在 VS 中按 f5)时,出现以下错误:
HTTP Error 401.0 - Unauthorized
You do not have permission to view this directory or page.
Most likely causes:
The authenticated user does not have access to a resource needed to process the request.
Things you can try:
Check the failed request tracing logs for additional information about this error. For more information, click here.
Detailed Error Information:
Module ManagedPipelineHandler
Notification ExecuteRequestHandler
Handler System.Web.Mvc.MvcHandler
Error Code 0x00000000
它的表现就好像它不知道应该如何验证其资源一样。
我在这里缺少什么?
最佳答案
显然,除非您以管理员身份运行 VS,否则向导会在没有说明任何问题的情况下终止。
我重复了上述步骤,这次以管理员身份启动 VS2013,授权向导将必要的配置添加到我的项目中。
关于c# - 如何使用 Azure ACS 保护新的 MVC5 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22922723/