我正在使用Visual Studio 2013创建一个全新的项目,我选择Asp.Net MVC和框架4.5.1项目已创建,然后,我除了F5之外什么都不做以启动默认网页.不幸的是,它产生了一个重定向到登录页面,该页面也重定向到登录页面.这是我在浏览器中的网址的简短版本:
http://localhost:5285/Account/Login?ReturnUrl=%2FAccount%2FLogin%3FReturnUrl%3D%252FAccount%252FLogin%253FReturnUrl%253D%25252FAccount%25252FLogin%25253FReturnUrl%25253D%2525252FAccount%2525252FLogin%2525253FReturnUrl%2525253D%252525252FAccount%252525252FLogin%252525253FReturnUrl%252525253D%25252525252FAccount%25252525252FLogin%25252525253FReturnUrl%25252525253D%2525252525252FAccount%2525252525252FLogin%2525252525253FReturnUrl%2525252525253D%252525252525
Run Code Online (Sandbox Code Playgroud)
我在事件查看器中没有任何错误.但在屏幕上我看到:
"HTTP错误404.15 - 未找到请求过滤模块配置为拒绝查询字符串太长的请求."
该网站使用IIS Express中的默认设置运行.我该如何解决这个问题?我猜我的Visual Studio 2013出了什么问题?
如果我创建一个全新的网站并将其托管在IIS中,它就可以工作.但是如果我创建一个新网站(没有修改任何东西)并且只是点击播放(默认启动IIS Express),它就不会.
我删除了Documents\IISExpress\config\applicationhost.config中的每个网站.我重新编译了所有内容,并创建了此条目:
<siteDefaults>
<logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
<traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
</siteDefaults>
<applicationDefaults applicationPool="Clr4IntegratedAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
Run Code Online (Sandbox Code Playgroud)
我仍然遇到IIS Express的错误,而不是IIS.
以前版本的Internet Explorer在超过2,083个字符的Web地址上出现错误(请参阅http://support.microsoft.com/kb/208427).同时,Firefox,Opera和Safari可以处理至少80,000个.
版本9带来了许多改进.URL长度是其中之一吗?
从客户端注销时,网址https://identity.acme.com/connect/endsession .... 出现错误(完整网址如下所示)
“您要查找的资源已被删除、更名或暂时不可用。”
AccountController.Logout 调用
await HttpContext.SignOutAsync("Cookies");
await HttpContext.SignOutAsync("oidc");
Run Code Online (Sandbox Code Playgroud)
浏览器中的Url是:
https://identity.acme.com/connect/endsession?post_logout_redirect_uri=https%3A%2F%2Fadmin.acme.com%2Fsignout-callback-oidc&id_token_hint=eyJhbGciOiJSUzI1NiIsImtpZCI6IkQ1NjY2RURGQjNFM0M3MDdCNkJCRUFCNEU3NTU3Q0NDNTNBOTc2Q0IiLCJ0eXAiOiJKV1QiLCJ4NXQiOiIxV1p1MzdQanh3ZTJ1LXEwNTFWOHpGT3Bkc3MifQ.eyJuYmYiOjE1MjM4NTI5NDMsImV4cCI6MTUyMzg1NjU0MywiaXNzIjoiaHR0cHM6Ly9pZGVudGl0eS50eXBzeS5jb20iLCJhdWQiOiJ0eXBzeS1pbmRpdmlkdWFsIiwibm9uY2UiOiI2MzY1OTQ0OTczMzc2OTAzMjQuTkRFME5EVXlORFF0WldOaU9TMDBOMkkzTFRrM01UY3RZVFl3WldRNVl6UmpObUk1WkRkaE5UUmtNVGN0WWpjM1lTMDBPVE16TFdFeU5tSXRZekpqWW1SaFptWTBPV1EzIiwiaWF0IjoxNTIzODUyOTQzLCJhdF9oYXNoIjoidkZacmdQUUI2UHd5VzBDeUhCV3QzdyIsInNpZCI6IjFlYjQxYzgwYjhmNGUxMTQ4MjViNDhiNmY4OWE1ZWY3Iiwic3ViIjoiYTAxNjI0MzAtZWIyMi00MTU0LWJmNTktMGJhNDliZmQ0NzNkIiwiYXV0aF90aW1lIjoxNTIzODUyOTQxLCJpZHAiOiJsb2NhbCIsIkFzcE5ldC5JZGVudGl0eS5TZWN1cml0eVN0YW1wIjoiMGM1YzQyNTQtOTM4NS00MWFiLWI5MTktNDFhZjgyOTFlNjljIiwiT3JnYW5pc2F0aW9uIjoiRmFuZXRpYyIsImdpdmVuX25hbWUiOiJKdXN0aW4iLCJmYW1pbHlfbmFtZSI6IkRyZXJ1cCIsInJvbGUiOlsiU3R1ZGVudCIsIkFkbWluaXN0cmF0b3IiLCJNYW5hZ2VyIiwiQWRtaW4iLCJUeXBzeS1PcmciXSwicHJlZmVycmVkX3VzZXJuYW1lIjoianVzdGluZEB0eXBzeS5jb20iLCJuYW1lIjoianVzdGluZEB0eXBzeS5jb20iLCJlbWFpbCI6Imp1c3RpbmRAdHlwc3kuY29tIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsImFtciI6WyJwd2QiXX0.ifQJVB25rAB3HP30F9vtRvzLZ9dHjORHX7cKoG6SLLR3WqGzpoCkjnq10ijffjj2QbsvjxRPvsYPgbVxISwP04V79RFTHqZI7Z39vsBSZSGeJnkhQLXCvMs9i6F4-aiHR9dF3KTMCMOXFfiG0stG69vIMPckUHuTh5yT5a_nFSL4lebLb5AOpPHto8TtTy6SvFOGp7uyXw7d_KVQ3U9lo4RTYvPVePgq9bZf1DcaOL_gutj2EmHVrNc9kDIQRxK4rTbjx2kFrxD2LauEmh-OXTdzjOqtXLQF2jRwV4sGvPImiBOt75vLMlJJUP8B7sEm61bR50hfOqpycm46PO_awryxWGvqItjrYe8P0OQtuaQghCkesjToW4_OPHHQJIX2jXLN3i0SvfmPEB41pqmP73cKvCjMAMeCllfZ8pfRwzsbzvWKYZ2jZkF4CT6zQq4pEGblEl12yC-I59gqRYozhxz1hiPep4KkgHZ40VRjCR5LNu8Mmx2qp8B7xwyfzes1r7VnCeMJJd7LNqRRdE6mszj7vaZdvHb8n7UDud1hzktYLoVUENodCo4KrGuD7QwT28q8IK2sbtcK_98aLap2WeXcuDMsP5zbrGS2Vb3N4YezdqEU7YJjvk9tvdMdafTYe4LKNaq-cDHVnJh_pmXJsL6odwz9eXkddJBPzhHXf6M&state=CfDJ8Pr81inWVH5OlYUuWwOTfYygcAOv4qo4Jl03Su6yhd8WHQz8m-LK-vBDM8CjSBrqjNLz4Qdqx8759Wpts3AsgHnf997vKLyWqQSOgTQPOpy5qyouRMRmHEsk-h5BnQR4_SHIkzo5_kgJQ0xROmsqUD4Aq3o0zYd-rI-GYHiii7P_&x-client-SKU=ID_NET&x-client-ver=2.1.4.0
Run Code Online (Sandbox Code Playgroud)
据我所知,这已经有效了好几个月。我看不到代码中有任何会影响此问题的更改,因此怀疑它是环境问题。
我已经打开了日志记录,并且 /connect/endsession 似乎没有被触发。所有其他事件都会被记录。
在开发中,它可以工作并且日志记录显示正在调用的端点:
Endpoint enabled: "Endsession", successfully created handler: "IdentityServer4.Endpoints.EndSessionEndpoint"
Request path "/connect/endsession" matched to endpoint type "Endsession"
Run Code Online (Sandbox Code Playgroud)
客户端在 IdentityServer4 Config.cs 中配置了正确的 PostLogoutRedirectUris
PostLogoutRedirectUris =
{
"https://admin.acme.com/signout-callback-oidc"
},
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我手动编辑 Url 以删除
post_logout_redirect_uri=https%3A%2F%2Fadmin.acme.com%2Fsignout-callback-oidc&
Run Code Online (Sandbox Code Playgroud)
并提交,然后我成功重定向到 Identity Server 的 LoggedOut 页面。
如果我删除
.AddOpenIdConnect("oidc", options =>
{
options.SignedOutRedirectUri = "https://admin.acme.com";
}
Run Code Online (Sandbox Code Playgroud)
从startup.cs 然后我可以成功地从客户端注销(但是注销后不再有重定向)
谁能解释发生了什么?
更新 - 是 URL 长度问题吗?
asp.net-identity openid-connect asp.net-core identityserver4
我从Visual Studio 2013创建了一个全新的Web表单应用程序,并在web.config文件中设置以下内容:
<authentication mode="Forms">
<forms defaultUrl="~/Home.aspx" loginUrl="~/Login.aspx"
slidingExpiration="true" timeout="2880" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
当我运行该项目时,我得到404.15错误.
这不是MVC网站.
我发现了一个类似的错误,说我需要删除"拒绝用户",但我不想那样做.
如果未经过身份验证,我需要将所有用户定向到登录页面.
*新的Asp.Net MVC5项目产生无限循环登录页面*
我也试过这个但是我得到"这个网页有一个重定向循环"
*如何配置web.config以允许任意长度的请求*
编辑:添加更多链接解释问题.
所以我找到了关于登录页面循环的文章.
*http://erlend.oftedal.no/blog/?blogid=55*
因此,如果我在ProcessRequest上添加一个断点,我可以看到有一个无限循环调用Login.aspx页面.
所以问题似乎不是URL太长,而是有一个无限循环调用Login.aspx页面.
如果我在Login.aspx页面的Page_Load上放置一个断点,断点永远不会被击中.
必须有更高的东西导致重定向.
我正在使用角度cli在Angular 2中开发一个应用程序.该应用程序工作正常,并在我在Azure中部署它时运行正常,但路由不起作用.我可以通过"myapp.azurewebsites.net"访问我的应用程序,但如果我尝试"myapp.azurewebsites.net/settings",我会收到404错误.我找到了许多指南,有很多不同的方法可以让不同的服务器将所有内容路由到一个索引文件,但根本没有.就像提供web.config文件,配置节点或快速服务器,以及两者同时一样.
所以,我的问题包括两部分.
1. Azure中哪种Web应用程序模板最适合托管Angular2应用程序?
它只是用Angular2编写的单页面应用程序.不是ASP.NET MVC应用程序中包含的那种.
2.如何配置该Web应用程序以使用我在Angular中配置的路由
请求过滤模块用于拒绝查询字符串过长的请求。
我遇到了上述错误,我几乎尝试了所有方法但没有运气
我的项目是 Visual Studio 2013 上的 MVC4
我确定的事情是正确的并尝试过。
我在我的控制器中登录 Actions 时有 [AllowAnonymous] attr。
当我在 Visual Studio 上以调试模式或不使用调试模式运行应用程序时,我没有问题。
这是我的路由配置 routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter 。可选的 } );
这是我在 Web 服务器上遇到的错误
asp.net ×2
url ×2
angular ×1
asp.net-core ×1
asp.net-mvc ×1
azure ×1
browser ×1
c# ×1
http ×1
iis-7.5 ×1
iis-express ×1