5

这个 VS 2012 扩展旨在允许我将本地开发 STS 添加到我的 MVC 应用程序http://visualstudiogallery.msdn.microsoft.com/e21bf653-dfe1-4d81-b3d3-795cb104066e

我按照非常简单的说明进行操作,例如右键单击项目名称并在菜单中选择身份和访问权限。选择您的身份提供者,然后单击确定将设置应用到您的 web.config。

我运行我的 MVC 4 应用程序,它立即重定向到 login.aspx

我猜有MVC 4 的特殊说明。

这些是什么?

我在哪里可以找到它们?

编辑

需要明确的是,我在 Visual Studio 2012 中创建了一个 ASP.MVC 4 Internet 应用程序。然后我使用 Identity & Access Tool 添加本地开发 STS 来测试我的应用程序。

我在本地 IIS Express 上运行该站点

当我调试应用程序时,我被重定向到

本地主机:11378/login.aspx?ReturnUrl=%2f

即使我按照已经给出的建议中的建议删除表单身份验证,也会发生这种情况。

4

3 回答 3

9

就我而言,我添加了这个

<system.web>
...
<httpModules>
...
    <remove name="FormsAuthentication" />
</httpModules>
</system.web>

和这个

<system.webServer>
...
   <modules>
   ...
      <remove name="FormsAuthentication" />
   </modules>
</system.webServer>

编辑

您可能会遇到的下一个问题是

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier ”或“ http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider ”类型的声明是不存在于提供的 ClaimsIdentity 上。要启用基于声明的身份验证的防伪令牌支持,请验证配置的声明提供程序是否在其生成的 ClaimsIdentity 实例上提供这两个声明。如果配置的声明提供程序使用不同的声明类型作为唯一标识符,则可以通过设置静态属性 AntiForgeryConfig.UniqueClaimTypeIdentifier 进行配置。

将这 2 个声明添加到身份和访问工具中的开发 STS

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider

并将这一行添加到您的 Global.asax

AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.NameIdentifier;

这篇文章帮助了我

于 2012-10-11T23:46:07.627 回答
3

删除 FormsAuthentication 模块对我有用。

 <httpModules>
    ...
    <remove name="FormsAuthentication" />
 </httpModules>
于 2012-10-11T16:00:13.827 回答
2

我在本地 IIS Express 上的 MVC4 应用程序也遇到了类似的问题。

事实证明,该项目启用了Windows 身份验证。禁用 Windows 身份验证(在项目属性窗格中 -按 F4)解决了该问题。

于 2012-11-07T09:52:04.260 回答