2012-12-04 5 views
0

나는 다음과 같습니다 사용자 지정 멤버 자격 공급자를이 사용자에 나는 그렇게처럼 내 사용자 모델의 로그인 방법을 호출 할 수 있습니다전화 사용자 정의 기능은

public class UserController : Controller 
{ 
    public ActionResult Login(UserModel model) 
    { 
     if (Membership.ValidateUser(model.name, model.password)) { 
      FormsAuthentication.SetAuthCookie(model.name, false, MvcApplication.BASE_URL); 
      return RedirectToAction("Index", "Home"); 
    } 
} 

을 내가 실행 해요 내가 이상하게 여기는 EF 객체 컨텍스트와 관련이 있다고 생각하는 이상한 사용자 문제가 있습니다. this answer을 기반으로 멤버십 공급자가 사용하는 개체 컨텍스트를 수동으로 삭제하려고합니다. 나는이 요청의 끝에서 발생하는 원하고 그것을 위해 내 사용자 컨트롤러에 Dispose 메소드를 오버라이드 (override) 할 : 나는 내 사용자 지정 멤버 자격 공급자가 수 '의 DisposeContext 메소드를 호출 할 때

protected override void Dispose(bool disposing) 
{ 
    base.Dispose(disposing); 
    Membership.DisposeContext(); //this is what I want to do, but it doesn't work 
} 

방법을 찾지 마라. ('System.Web.Security.Membership는'DisposeContext '에 대한 정의가 포함되어 있지 않습니다)

어떻게 회원에 의해 사용되는 동일한 개체 내 DisposeContext 방법 호출 할 수 있습니다?

답변

2

Membership class은 기본 멤버 자격 공급자의 알려진 메서드를 호출하는 정적 메서드 만 제공합니다. 나는 정확한 것은 거의 시도 ...

((PMembershipProvider)Membership.Provider).DisposeContext(); 
+0

아아 : 사용자 정의 메소드를 호출하려면 방법은 Membership.Provider property에 액세스해야하는 사용자 지정 공급자에 캐스팅 한 다음 전화 할게. 그게 효과가 있습니다 - 고마워요! – Mansfield

관련 문제