是否可以使用指向两个不同页面的单个URL?

时间:2014-10-27 15:24:59

标签: c# model-view-controller

我有一个url(/ settings)需要指向两个不同的页面,具体取决于登录时的用户安全性。一个页面是现有的webforms页面,另一个页面是新的MVC页面。这甚至可能吗?

其他信息: 当用户在任一页面上时,网址需要说明website.com/settings

解决方案: 确信PM会改变要求。

2 个答案:

答案 0 :(得分:0)

这是一种基于重定向的方法。创建一个映射到/settings的网页,并在页面加载时运行此代码。

if(User.IsAdministrator()) //I take it you have some way of determining who is an Admin, so this is just example code
    {
    Response.Redirect("~/AdminSettings.aspx");
    }
else
    {
    Response.Redirect("~/UserSettings.aspx");
    }

请注意,您需要在管理页面上提供安全性,以确保普通用户无法直接在那里导航。

答案 1 :(得分:0)

简短的回答,。你可以通过以下几种方式做到这一点。

  • 的Javascript
  • 模型视图控制器(控制器)
  • ASP.NET Web表单(方法)

执行此类事件通常很糟糕,因为它可能会暴露数据。确实有可能:

使用Javascript:

$(document).ready(function () {
    if($("#Account").val() != '') {
          $(".Url").attr('href', 'http://www.google.com');
    }
});

假装#Account是从您的数据库填充的隐藏字段。如果字段不是 null,则修改.Url元素以导航到链接。 Web-Forms 的方法是最简单的。

web的表单

protected void btnAccount_Click(object sender, EventArgs e)
{
     if(User.IsInRole("Account"))
          Response.Redirect("~/Admin.aspx");

     else
          Response.Redirect("~/User.aspx");
}

那将使用域的默认Windows身份验证,您可以弯曲和扭曲以使用数据库来提取数据。例如,模型视图控制器将类似,因为Controller将简单地处理该功能。

希望这指向正确的方向。