これは仕様によるものか、私が行っているか行っていないことである可能性があります。
AccountControllerがAuthorize属性を使用しているMVC4アプリケーションがあります。ユーザーがログインページを表示しているとき、ログイン後に使用されるTeller Issue Dateがあります。正常に機能しているNameフィールドでchangeイベントをキャプチャしようとしており、Jquery関数を起動して取得します。発行日。
JQueryAjax関数は次のとおりです。
function update_issue_date() {
var userName = $('#UserName').val();
$.ajax({
type: 'GET',
url: '/Account/GetIssueDate',
async: true,
data:
{
userName: userName
},
success: function(data) {
$('#IssueDate').val(__format_date_for(new Date(data.issueDate)));
}
});
AccountControllerには、次のアクションがあります。
[AllowAnonymous]
public ActionResult GetIssueDate(string userName)
{
var issueDate = DateTime.Now.Date;
if (userName.Length > 0)
{
var user = userRepo.GetUser(userName);
//var user = user_repository.get_all().FirstOrDefault(x => x.user_name == userName);
var currentDate = DateTime.Now.Date;
issueDate = (user == null || user.IssueDate < currentDate) ? currentDate : user.IssueDate;
}
return Json(new { issueDate = issueDate.ToShortDateString() }, JsonRequestBehavior.AllowGet);
}
これが何が起こるかです。web.configでAuthorizeのものを無効にしている場合、この関数はそのまま機能し、適切な発行日を返します。ただし、承認を有効にしている場合、GetIssueDateアクションは実行されないようです。そして、ログインページのHTMLを取得します。
このアクションに[AllowAnonymous]属性がありますが、アプリケーションはJquery関数から呼び出されたときにこれを無視しているようであり、起動を許可していないようです。
これを回避する方法はありますか、それとも私がやろうとしていることを行う別の方法はありますか?
ありがとう。