【发布时间】:2014-04-03 09:12:09
【问题描述】:
我知道没有必要为 Durandal 登录页面指定登录 URL。但我想知道如何解决我面临的以下问题,将身份验证重定向到具有 Sharp 符号(即 #)的特定 Durandal 页面。
public void ConfigureAuth(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
//LoginPath = new PathString("/" + HttpUtility.UrlDecode("#") + "/login")
LoginPath = new PathString("/#/login")
});
...
}
当我粘贴时:
http://localhost/#/login
到浏览器 URL 我可以毫无问题地导航到登录页面。我可以登录,它工作正常。
因为我在某些场景中将 MVC 与 SPA 混合使用,所以当我将 [Authorize] 属性添加到 MVC 控制器时,我将按预期重定向到
http://localhost/%23/login?ReturnUrl=%2Fe
我得到了错误:
“/”应用程序中的服务器错误。
找不到资源。 说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。
请求的 URL:/#/login
如何使用 # 符号而不是 %23 字符编码? 或者我在搞砸别的东西!!!
仅供参考: 我的问题与字符编码有关,而不是这样:Login page on different domain,因为我将来在其他情况下可能会遇到同样的问题。
【问题讨论】:
-
你试过去掉前面的 / 吗?
-
是的,我已尝试删除前导 /,但这是不可能的。它清楚地要求我添加前导 /
-
你自己解决过这个问题吗?我现在也有同样的问题。
-
@Cowman:我将“Sjoerd”标记为已回答。
标签: asp.net-mvc asp.net-web-api durandal