Próbuję ustawić rejestrację i zalogowanie się na wniosek Hot Towel SPA. Stworzyłem SimpleMembershipFilters i ValidateHttpAntiForgeryTokenAttribute na podstawie asp.net single page application template.ValidateAntiForgeryToken z architekturą SPA
Jak uzyskać kod
@Html.AntiForgeryToken()
pracować w strukturze Durandal SPA.
Obecnie mam register.html
<section>
<h2 data-bind="text: title"></h2>
<label>Firstname:</label><input data-bind="value: firstName" type="text" />
<label>Lastname:</label><input data-bind="value: lastName" type="text" />
<label>Email:</label><input data-bind="value: emailAddress" type="text" />
<label>Company:</label><input data-bind="value: company" type="text" />
<br />
<label>Password:</label><input data-bind="value: password1" type="password" />
<label>Re-Enter Password:</label><input data-bind="value: password2" type="password" />
<input type="button" value="Register" data-bind="click: registerUser" class="btn" />
</section>
register.js:
define(['services/logger'], function (logger) {
var vm = {
activate: activate,
title: 'Register',
firstName: ko.observable(),
lastName: ko.observable(),
emailAddress: ko.observable(),
company: ko.observable(),
password1: ko.observable(),
password2: ko.observable(),
registerUser: function() {
var d = {
'FirstName': vm.firstName,
'LastName': vm.lastName,
'EmailAddress': vm.emailAddress,
'Company': vm.company,
'Password': vm.password1,
'ConfirmPassword': vm.password2
};
$.ajax({
url: 'Account/JsonRegister',
type: "POST",
data: d ,
success: function (result) {
},
error: function (result) {
}
});
},
};
return vm;
//#region Internal Methods
function activate() {
logger.log('Login Screen Activated', null, 'login', true);
return true;
}
//#endregion
});
w $ wywołanie ajax jak mijam AntiForgeryToken? Jak również utworzyć token?
Jak wywołujesz 'ValidateRequestHeader'? –
Chciałbym utworzyć filtr akcji, ponieważ jest to problem przekrojowy i jest projektem zorientowanym na aspekt. W ten sposób możesz po prostu przypisać metody, które chcesz wymusić na tym zabezpieczeniu. –
FYI: Atrybut implementuje "IAuthorizationFilter", ale brakuje metody "public void OnAuthorization (AuthorizationContext filterContext)". – Jaans