문제

내 컨트롤러 메소드에서 [roodize (rection = "admin") 태그를 사용하고 싶습니다.

사용자가 관리자가 아닌 경우이 사용자를 내 로그인 화면으로 반환하고 싶습니다. 내 로그인 페이지로 사용자를 반환하는 기본 동작은 내 사용자가 get url을 사용하여 "계정/로그인"하도록 재신입니다.

문제는 내 웹 사이트의 하위 페이지가 로그인 화면을 포함하여 Ajax 호출로 새로 고침 된 부분적인보기입니다.

그래서 내 질문은 다음과 같습니다.get 리디렉션 대신 게시물 리디렉션을 반환하기 위해 아래 클래스를 변경할 수 있습니까?

public class AjaxAuthorizeAttribute : AuthorizeAttribute
{
  override public void OnAuthorization(AuthorizationContext filterContext)
  {
    base.OnAuthorization(filterContext);
    // Only do something if we are about to give a HttpUnauthorizedResult and we are in AJAX mode.
    if (filterContext.Result is HttpUnauthorizedResult && filterContext.HttpContext.Request.IsAjaxRequest())
    {
      filterContext.Result =  new RedirectResult("../Account/Login");
    }
  }
}
도움이 되었습니까?

해결책

분명히 문제는 제거하여 해결 된 것 같습니다

[Acceptverbs(HttpVerbs.Post)]

내 계정 컨트롤러의 로그인 방법에 속성.

이런 식으로 우리는 승인을 무시할 필요조차 없습니다.

:)

다른 팁

나는 해결책을 찾았다 Microsoft.WebPages.PreApplicationStartCode.SetupFormsAuthentication()

하나만 추가하면됩니다 appSetting 로그인 조치를 지정하려면 "loginurl"이라는 이름 :

<add key="loginUrl" value="~/Account/LogOn"/>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top