嗨之後做一些研究,這是爲我工作的解決方案:
- 從的NuGet
- 更改安裝razor markdown文件結構相匹配的默認行爲RM [剃刀降價]到/視圖
- 按照this service stack example中描述的方法修改web配置
- 將所有靜態htmls文件更改爲.cshtml文件,默認情況下,這種默認情況下會創建相同的路由,而不會像/ views/{Pagename}這樣的擴展名不帶外部分機ension,我只是用這種方法來獲取授權的邏輯更簡單的實現(至少對我來說)
- 更新與授權服務方法屬性,你可以找到更多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");
}
我希望幫助
都是網站和服務正在在同一個域託管? – Malkus
@Malkus是的,他們將在同一個域中,他們將在同一個上下文/應用程序池中的IIS 7 –
通過安全,你的意思是你想通過某種身份驗證方法來限制訪問? –