asp.net-mvc – ACS安装,但MVC 4.0应用程序仍然重定向,无法找到login.aspx

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – ACS安装,但MVC 4.0应用程序仍然重定向,无法找到login.aspx前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先在这里stackoverflow,但我喜欢的网站!

我已经成功地创建了一个完全运行的Azure混合模型应用程序使用MVC 4.发布和工程伟大。现在我想添加ACS为我的网站的身份验证。我已经跟随all the steps,但是当我在模拟运行应用程序无法重新定向到ACS,并提供了页面,说明它找不到login.aspx。

我创建了一个简单的网站解决方案,以证明我的ACS设置正确,它的工作正常。我注意到这两个解决方案的web.config文件是非常不同的。

任何人都试图这样做?任何帮助将不胜感激。

———解决方案———–

我终于得到了一切工作。关键是删除WebMatrix.WebData引用,因为我不需要做我自己的auth。以下来自MVC4 Release notes.

当WebMatrix.WebData.dll包含在ASP.NET MVC 4应用程序的/ bin目录中时,它接管表单身份验证的URL。将WebMatrix.WebData.dll组合件添加到应用程序(例如,使用“添加可部署依赖项”对话框时选择“使用Razor语法的ASP.NET Web页面”)将覆盖认证登录重定向到/ account / logon,而不是/ account / login按照默认的ASP.NET MVC帐户控制器。

解决方法

打开您的web.config文件

找到Authentication节点。

更改为:

<authentication mode="Forms" />

至:

<authentication mode="None" />

在这里评论,如果它不帮助,以及更改web.config后的结果是什么。

作为一个侧问题 – 你是如何添加对ACS命名空间的引用 – 通过“右键单击 – >添加STS参考”,或手动更改web.config?

确保所需的模块已注册到Web服务器:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <add name="ClaimsPrincipalHttpModule" type="Microsoft.IdentityModel.Web.ClaimsPrincipalHttpModule,Microsoft.IdentityModel,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler" />
      <add name="WSFederationAuthenticationModule" type="Microsoft.IdentityModel.Web.WSFederationAuthenticationModule,PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler" />
      <add name="SessionAuthenticationModule" type="Microsoft.IdentityModel.Web.SessionAuthenticationModule,PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler" />
    </modules>
   ...
 </system.webServer>

还要确保你有microsoft.identityModel部分,并且其中有federatedAuthentcation节点:

<federatedAuthentication>
        <wsFederation passiveRedirectEnabled="true" issuer="https://[your_namespace].accesscontrol.windows.net/v2/wsfederation" 
                      realm="http://127.0.0.1:81/" requireHttps="false" />
        <cookieHandler requireSsl="false" />
</federatedAuthentication>

其中“realm”是用于Realying Party应用程序的有效URL。而requireHttps =“false”是为了简化开发过程。

当您在本地调试时,请确保您正在运行云项目(使用IIS),而不是Web项目(将使用Cassini / webdevserver,它不了解system.webServer部分!)。

原文链接:https://www.f2er.com/aspnet/253940.html

猜你在找的asp.Net相关文章