如何禁用我的应用程序中的URL不要手动更改

时间:2012-01-18 18:44:02

标签: asp.net asp.net-mvc asp.net-mvc-2

我需要禁用应用程序中的URL,不要手动更改。

Ex:我有index.aspx页面。因为我有一个名为Create的按钮。当我点击我要去Create.aspx页面。

基于某些验证我在索引页面上禁用了创建按钮。我能够做到这一点。

我的问题是,当我手动更改URL时,我有什么方法可以禁用manuall的URL?

由于

4 个答案:

答案 0 :(得分:1)

在不知道禁用逻辑的详细信息或指向此URL的位置的情况下,我会说这是自定义操作过滤器的工作。

以下是自定义验证过滤器的示例:

public class CustomAuthorizeAttribute : AuthorizeAttribute
    {

        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            //the base will just do the default behavior

            base.OnAuthorization(filterContext);

            //...if(same eval logic for button)==true
            filterContext.Result = new RedirectResult(<url>); //or RedirectToRoute(...
        }
    }

然后在控制器的操作方法中,应用属性...

答案 1 :(得分:0)

当用户可以查看创建页面时设置会话变量。

Session["Create"]=true;

当他们到达create.aspx时,检查该会话变量。如果这是真的,请将它们放入,如果没有 - 将它们放入索引页面。

答案 2 :(得分:0)

单击索引页面上的“CreateButton”时设置会话变量。

//Code for your button on your index page

    Session["allowaccesstoCreatePage"]=1;

在create.aspx页面加载

上检查此会话变量
if(Session["allowaccesstoCreatePage"]==null)
{
Response.Redirect("index.aspx");
}

答案 3 :(得分:0)

在Create.aspx的Page_Load事件中键入此内容,或者在Page_Init事件中更好地输入

if (Request.UrlReferrer == null) 
        Response.Redirect("~/index.aspx");