我有一个url(/ settings)需要指向两个不同的页面,具体取决于登录时的用户安全性。一个页面是现有的webforms页面,另一个页面是新的MVC页面。这甚至可能吗?
其他信息: 当用户在任一页面上时,网址需要说明website.com/settings
解决方案: 确信PM会改变要求。
答案 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:
$(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
将简单地处理该功能。
希望这指向正确的方向。