如何将asp.net – AngularJs ServiceStack应用程序的安全性提升至长尾词级别的防护措施?

2026-03-30 12:311阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计658个文字,预计阅读时间需要3分钟。

如何将asp.net – AngularJs ServiceStack应用程序的安全性提升至长尾词级别的防护措施?

我有款应用在前端有四个模块,我正在尝试尽可能多地使用前端的AngularJs。我正在使用一个空网站asp.net项目来托管所有文件和REST+ServiceStack。我的项目有以下几种结构:~/(web.config)

我有一个应用程序在前端有四个模块,我正在尝试尽可能多地使用前端的AngularJs我正在使用一个空网站asp.net项目来托管所有文件和REST serviceStack,我的项目有以下几种结构:

~/ (web.config, global.asax and all the out of the box structure for an asp.net website) - App <- AngularJs - Users <- js controllers and views (static html files) - Companies - BackEnd - Public Index.html IndexCtrl.js App.js - Content - Js

我使用angularjs服务调用和后端我使用REST与servicestack.

问题是如何限制只有经过身份验证的用户访问那些静态html文件?比如公司,后端和用户内部的那些

嗨在做了一些研究后,这是对我有用的解决方案:

如何将asp.net – AngularJs ServiceStack应用程序的安全性提升至长尾词级别的防护措施?

>从nuget安装razor markdown
>更改文件结构以匹配默认行为RM [Razor Markdown]到/ views
>按照this service stack example中描述的方法修改Web配置
>将所有静态htmls文件更改为.cshtml文件,默认情况下创建相同的路由,没有扩展名,如/ views / {Pagename}没有扩展名,我只是使用这种方法来获得更简单的授权逻辑(在对我来说最少)
>使用authorize属性更新服务方法,您可以找到更多信息in this page

为了说明这一点,这是我到目前为止的路线定义:

'use strict'; angular.module('myApp', ['myApp.directives', 'myApp.services']).config( ['$routeProvider', function($routeProvider) { $routeProvider.when('/Dashboard', { controller: 'dashboardCtrl', templateUrl: 'Views/dashboard' }).when('/Payments', { controller: 'paymentsCtrl', templateUrl: 'Views/payments' }). when('/Login', { controller: 'loginCtrl', templateUrl: 'Views/login' }); }] );

请注意,引用现在指向剃刀路径.

这是一个小角度的菜单

<div class="container"> <div class="navbar" ng-controller="indexCtrl"> <div class="navbar-inner"> <a class="brand" href="#/">header menu</a> <ul class="nav"> <li ng-class="{active: routeIs('/Dashboard')}"><a href="#/Dashboard">Dashboard</a></li> <li ng-class="{active: routeIs('/Login')}"><a href="#/Login">Login</a></li> <li ng-class="{active: routeIs('/Payments')}"><a href="#/Payments">payments</a></li> </ul> </div> </div> <ng-view></ng-view> </div>

假设付款页面受到限制,因此每次点击页面时我都会收到401未经授权的邮件.

服务主持人:

public override void Configure(Container container) { Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new FacebookAuthProvider(appSettings), new TwitterAuthProvider(appSettings), new BasicAuthProvider(appSettings), new GoogleOpenIdOAuthProvider(appSettings), new CredentialsAuthProvider() })); //I'm going to support social auth as well. Plugins.Add(new RegistrationFeature()); Routes.Add<UserRequest>("/Api/User/{Id}"); Routes.Add<LoginRequest>("/Api/User/login","POST"); Routes.Add<PaymentRequest>("/views/Payments"); }

我希望有所帮助

本文共计658个文字,预计阅读时间需要3分钟。

如何将asp.net – AngularJs ServiceStack应用程序的安全性提升至长尾词级别的防护措施?

我有款应用在前端有四个模块,我正在尝试尽可能多地使用前端的AngularJs。我正在使用一个空网站asp.net项目来托管所有文件和REST+ServiceStack。我的项目有以下几种结构:~/(web.config)

我有一个应用程序在前端有四个模块,我正在尝试尽可能多地使用前端的AngularJs我正在使用一个空网站asp.net项目来托管所有文件和REST serviceStack,我的项目有以下几种结构:

~/ (web.config, global.asax and all the out of the box structure for an asp.net website) - App <- AngularJs - Users <- js controllers and views (static html files) - Companies - BackEnd - Public Index.html IndexCtrl.js App.js - Content - Js

我使用angularjs服务调用和后端我使用REST与servicestack.

问题是如何限制只有经过身份验证的用户访问那些静态html文件?比如公司,后端和用户内部的那些

嗨在做了一些研究后,这是对我有用的解决方案:

如何将asp.net – AngularJs ServiceStack应用程序的安全性提升至长尾词级别的防护措施?

>从nuget安装razor markdown
>更改文件结构以匹配默认行为RM [Razor Markdown]到/ views
>按照this service stack example中描述的方法修改Web配置
>将所有静态htmls文件更改为.cshtml文件,默认情况下创建相同的路由,没有扩展名,如/ views / {Pagename}没有扩展名,我只是使用这种方法来获得更简单的授权逻辑(在对我来说最少)
>使用authorize属性更新服务方法,您可以找到更多信息in this page

为了说明这一点,这是我到目前为止的路线定义:

'use strict'; angular.module('myApp', ['myApp.directives', 'myApp.services']).config( ['$routeProvider', function($routeProvider) { $routeProvider.when('/Dashboard', { controller: 'dashboardCtrl', templateUrl: 'Views/dashboard' }).when('/Payments', { controller: 'paymentsCtrl', templateUrl: 'Views/payments' }). when('/Login', { controller: 'loginCtrl', templateUrl: 'Views/login' }); }] );

请注意,引用现在指向剃刀路径.

这是一个小角度的菜单

<div class="container"> <div class="navbar" ng-controller="indexCtrl"> <div class="navbar-inner"> <a class="brand" href="#/">header menu</a> <ul class="nav"> <li ng-class="{active: routeIs('/Dashboard')}"><a href="#/Dashboard">Dashboard</a></li> <li ng-class="{active: routeIs('/Login')}"><a href="#/Login">Login</a></li> <li ng-class="{active: routeIs('/Payments')}"><a href="#/Payments">payments</a></li> </ul> </div> </div> <ng-view></ng-view> </div>

假设付款页面受到限制,因此每次点击页面时我都会收到401未经授权的邮件.

服务主持人:

public override void Configure(Container container) { Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new FacebookAuthProvider(appSettings), new TwitterAuthProvider(appSettings), new BasicAuthProvider(appSettings), new GoogleOpenIdOAuthProvider(appSettings), new CredentialsAuthProvider() })); //I'm going to support social auth as well. Plugins.Add(new RegistrationFeature()); Routes.Add<UserRequest>("/Api/User/{Id}"); Routes.Add<LoginRequest>("/Api/User/login","POST"); Routes.Add<PaymentRequest>("/views/Payments"); }

我希望有所帮助