我有一个在ASP.NET 4.5和ASP.net Identity 2.0中开发的现有Web应用程序。我在RouteConfig.cs中为路由器设置如下:
public static void RegisterRoutes(RouteCollection routes)
{
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);
routes.MapPageRoute("manage-user-acc", "manage-user-acc", "~/Account/Manage.aspx", true);
}
manage.aspx页面必须登录才能查看此内容。当应用程序运行时,我在地址栏中键入url,如下所示:
http://localhost:64296/manage-user-acc
returnUrl无效,错误是
访问提供此服务所需的资源时发生错误 请求。您可能没有权限查看请求的内容 资源。
但是当我在地址栏中输入这样的url时
http://localhost:64296/Account/Manage
returnUrl正在运行并返回登录页面,如下所示:
http://localhost:64296/Account/Login?ReturnUrl=%2Faccount%2Fmanage
任何人都可以帮助我找出我在做错的地方。或者我如何调试所有过程
答案 0 :(得分:0)
这看起来像个错误。您可以通过验证路由而不是物理页面来绕过它。删除对MapPageRoute
的调用中的布尔值routes.MapPageRoute("manage-user-acc", "manage-user-acc", "~/Account/Manage.aspx");
并拒绝在根Web.config
中对路由进行未经身份验证的访问<location path="manage-user-acc">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>