Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “使安全”;私人地盘面积“;使用准无服务器web体系结构(AJAX模板魔术)_C#_Javascript_Asp.net_Asp.net Mvc_Ajax - Fatal编程技术网

C# “使安全”;私人地盘面积“;使用准无服务器web体系结构(AJAX模板魔术)

C# “使安全”;私人地盘面积“;使用准无服务器web体系结构(AJAX模板魔术),c#,javascript,asp.net,asp.net-mvc,ajax,C#,Javascript,Asp.net,Asp.net Mvc,Ajax,首先,如果我的英语听起来不太好,我会尽量说清楚。 我计划开发一个具有以下体系结构的网站: 静态页面提供给使用javascript模板和ajax加载内容的客户端,内容将通过ASP.NET MVC应用程序提供,该应用程序将json结果发送到客户端页面 我的问题很简单:我可以用什么方法为我的网站用户提供私人区域 我唯一想到的是提供一个登录页面,将登录信息(加密)发送到服务器(通过ajax)。然后服务器返回一个令牌作为cookie存储。对于下面通过ajax对服务器的每次调用(现在说的是私有区域),也应该

首先,如果我的英语听起来不太好,我会尽量说清楚。 我计划开发一个具有以下体系结构的网站:

静态页面提供给使用javascript模板和ajax加载内容的客户端,内容将通过ASP.NET MVC应用程序提供,该应用程序将json结果发送到客户端页面

我的问题很简单:我可以用什么方法为我的网站用户提供私人区域

我唯一想到的是提供一个登录页面,将登录信息(加密)发送到服务器(通过ajax)。然后服务器返回一个令牌作为cookie存储。对于下面通过ajax对服务器的每次调用(现在说的是私有区域),也应该发送并检查令牌,并提供适当的内容结果

我该如何实现这一点?安全和隐私问题是什么

顺便说一句,我在服务器中使用C#,JQuery用于简单的ajax管理,JQuery.LoadJSON用于内容加载。Mustache为javascript提供了诸如partials之类的东西。我正在寻找的东西,让我管理饼干在一个简单和明确的方式,以及,建议是感谢


非常感谢

您可以实际使用内置的ASP.NET身份验证机制:

  • 允许匿名访问您的所有页面(假设这是要求)
  • 在java脚本(客户端)中维护一个变量,以告知用户是否已通过身份验证
  • 要访问任何安全内容/区域,请调用公共js函数,该函数将查看当前用户是否已通过身份验证,如果未通过身份验证,则执行适当的操作来验证该用户
  • 如果是基于表单的身份验证,那么您的函数应该使用模式对话框提示用户输入凭据,然后通过ajax调用将这些凭据传递给服务器。在服务器端,您应该验证凭据并使用来指示对ASP.NET运行时的成功身份验证。运行时将维护auth cookie(这样您就不必自己管理令牌)
  • 对于为安全内容提供服务的任何ajax调用,在服务器端,调用必须检查当前用户是否经过身份验证(使用
    HttpContext.current.user.Identity.IsAuthenticated
    )。如果没有,则可以重定向到错误页或发出401响应代码(建议用于windows身份验证方案)。您可以在AJAX调用中为经过身份验证的用户添加任何授权方案

此外,如果用户已通过身份验证,则只能“提供”特定js文件。因此,最初,您可以提供一个基本的“common.js”文件,然后如果用户进行身份验证,则有条件地包括一个“leve2 access.js”文件,该文件具有仅对经过身份验证的用户可用的附加功能。这是一个非常好的解决方案,我没有想到仅对“服务器端”使用asp.net内置身份验证管理作为身份验证的一部分,我认为这是行不通的。对于另一方(客户端),我还发现了这段漂亮的代码: