【问题标题】:How to check ASP.NET C# Request.IsAuthenticated in Javascript?如何在 Javascript 中检查 ASP.NET C# Request.IsAuthenticated?
【发布时间】:2015-04-10 11:39:56
【问题描述】:

在页面加载时,我想检查Request.IsAuthenticated。我怎样才能通过javascript做到这一点。 下面的代码显示了我在 asp.net c# 中是如何做到的?

if (!Request.IsAuthenticated)
{
     Response.Redirect("~/Login.aspx");
}

【问题讨论】:

标签: javascript c# asp.net request


【解决方案1】:

如果您使用的是 ASP.NET MVC,那么您可以执行以下操作。

 <script>
     var isRequestAuthenticated=' @Request.IsAuthenticated';
 </script>

否则,如果您使用的是普通的 ASP.NET Web 表单

 <script>
     var isRequestAuthenticated='<%=Request.IsAuthenticated%>';
 </script>

现在您可以使用该变量来检查此请求是否经过身份验证。

【讨论】:

  • 试试 asp.net 网络表单。我已经给出了两个选项仔细阅读它
  • 如果后面没有代码,我正在使用网络表单。 javascript文件中的所有功能。它在 Javascript 的页面加载中尝试了您的代码,但无论是否登录或注销,它总是返回 true。
  • 在 webforms 示例中,C# 将呈现“False”。并且因为非空字符串在 javascript 中是真实的,所以如果 isRequestAuthenticated == "False",写 if(isRequestAuthenticated){foo();} 将执行 foo()。我把单引号去掉,加了.ToString().ToLower()
【解决方案2】:

这应该可行:

    <script type="text/javascript">

        function foo(){
            if('@Request.IsAuthenticated' === 'True') {
                // your implementation for authenticated users go here

            }
            else{
                // your implementation for not authenticated users....
                //e.g. alert('You must be logged in to do bla bla bla');
            }
        }
    </script>

【讨论】:

    【解决方案3】:

    对于 JavaScript,我假设您的意思是使用 AJAX,以便将值直接读入您的 JavaScript。

    Response.Write(Request.IsAuthenticated ? "TRUE" : "FALSE");
    

    如果为真,则返回“TRUE”,如果为假,则返回“FALSE”。将其放入只有您的 AJAX 函数调用的方法中。

    【讨论】:

      猜你喜欢
      • 2014-08-02
      • 1970-01-01
      • 2010-11-15
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 2011-04-27
      • 1970-01-01
      相关资源
      最近更新 更多