Javascript 登录转发页面URL包含太多信息

Javascript 登录转发页面URL包含太多信息,javascript,c#,asp.net-mvc,url-routing,Javascript,C#,Asp.net Mvc,Url Routing,在我的MVC应用程序中,我自己处理所有的登录/身份验证/etc,遇到了一个问题。当用户不登录而直接访问页面时,我使用LoginForward控制器操作来处理。这正是我正在做的: 在许多不同的控制器动作(C#)中: LoginForward操作(C#): 在我看来,在验证登录后,我正在执行以下操作(javascript): 我看到的问题是视图的url如下所示: http://localhost:66666/Account/LoginForward?ForwardToController=MyCon

在我的MVC应用程序中,我自己处理所有的登录/身份验证/etc,遇到了一个问题。当用户不登录而直接访问页面时,我使用LoginForward控制器操作来处理。这正是我正在做的:

在许多不同的控制器动作(C#)中:

LoginForward操作(C#):

在我看来,在验证登录后,我正在执行以下操作(javascript):

我看到的问题是视图的url如下所示:

http://localhost:66666/Account/LoginForward?ForwardToController=MyController&ForwardToAction=MyAction&ForwardToID=12345&CurrentUserID=0&CanAccessOpenItems=False&IsAdmin=False&CanAccessAnyReports=False&CanAccessAnyAdmin=False

有什么方法可以让我的URL中不包含所有这些数据吗?

只有我的两分钱,但这是一个彻底的改造,而不是简单地使用内置的
[Authorize]
方法,该方法还附加一个returnUrl参数,将用户重定向回他们要求登录之前的页面。至于您的问题,除非您将这些值存储在cookie或会话中,否则将这些数据获取到登录页面的选项不多。此外,其中一些数据在URL中看起来很敏感(例如IsAdmin、CanAccessReports)。我希望当用户到达他们需要去的地方时,你会重新考虑这些属性。@Tommy这是一个相当复杂的应用程序,我现在不能返回并强制使用授权逻辑。至于敏感数据,这些数据都没有填充过,只是我的ForwardViewModel扩展了我的ViewModelBase的一个副作用,它包含了所有这些字段。我想我可以停止从ViewModelBase扩展该类(尽管它是唯一的一个),但即使这样,我的URL中也会有我不想要的3-4个属性。不确定你的要求是什么。您希望在不更改代码的情况下保持逻辑不变,只是想看看是否有可能拥有相同的url,但让它看起来更漂亮?@Lupin我希望url能够显示以下内容:only,并且其他数据不会按原样公开。而不更改查看器和控制器代码中的任何内容?
public ActionResult LoginForward(string ForwardToController, string ForwardToAction, int ForwardToID)
{
    return View(new ForwardViewModel
    {
        CurrentUserID = -1,
        ForwardToController = ForwardToController,
        ForwardToAction = ForwardToAction,
        ForwardToID = ForwardToID
    });
}
window.location.href = '@((Model.ForwardToID == -1) ? 
    Url.Action(Model.ForwardToAction, Model.ForwardToController) : 
    Url.Action(Model.ForwardToAction, Model.ForwardToController, new { 
        id = Model.ForwardToID 
    }))';
http://localhost:66666/Account/LoginForward?ForwardToController=MyController&ForwardToAction=MyAction&ForwardToID=12345&CurrentUserID=0&CanAccessOpenItems=False&IsAdmin=False&CanAccessAnyReports=False&CanAccessAnyAdmin=False