웹 서버의 기본 프린터에서 웹 페이지를 인쇄하려고합니다. 나는 the holy grail을 발견하고 작동하지만 로그인 페이지를 인쇄하지 않습니다. 대상 페이지가 아닌 컨트롤러가 재고 설정으로 asp.net 멤버쉽을 사용하여 인증해야하기 때문에 의미가 있습니다. 난 this writeup 찾을 어디 폼 인터페이스를 사용하는 경우 dom 인터페이스를 사용할 수 있습니다 언급 한 (나) 생각하지만 어떻게 할 수 있는지 모르겠습니다. 브라우저가 로그인 페이지를 클릭하고 마지막으로 대상 페이지를 누르기 위해 사용자 이름/비밀번호를 다시 게시하게하는 것 같습니다. 계속 진행하는 가장 좋은 방법에 대한 통찰력은 매우 도움이 될 것입니다. 이미 렌더링 된 페이지를 인쇄하는 것이 관련되어 있다고는 상상하지 못했을 것입니다. 감사!asp.net-mvc 컨트롤러가 인증을 요구하는 서버 쪽을 인쇄하려고합니다.
편집 :이 작품 :
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool InternetSetCookie(string lpszUrl, string lpszCookieName, string lpszCookieData);
이 더 사용하여 개선 될 수 : 별도로
HttpCookie cookie = Request.Cookies[".ASPXAUTH"];
InternetSetCookie(htmlPath, ".ASPXAUTH", cookie.Value);
browser.Navigate(htmlPath);
while (browser.ReadyState != WebBrowserReadyState.Complete)
Application.DoEvents();
dynamic ie = browser.ActiveXInstance;
ie.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, PRINT_WAITFORCOMPLETION);
과 (분명히 쿠키 당신이 browser.Navigate 메서드 호출에 설정할 수없는 한 가지입니다) 내 코드로 이름 대신 폼 쿠키를 가져 오는 코드.
고마워요! 나는 거기를보아야했다. 나는 가까운 생각이지만 여전히 로그인을하고있다. 편집을 참조한다. –
은 쿠키를 문자열에 추가하는 것을 포함하여 다양한 시도를 해왔지만 브라우저 문서 쿠키가 여전히 null 인 내 로컬을 볼 때 그렇습니다. 어떤 아이디어가 빠졌습니까? Thanks –
@Vince, 왜 쿠키 이름을 읽으려면 sessionState 섹션을 사용하고 있습니까? 여기서 인증에 대해 이야기하고 있습니다. 세션이 아닙니다. 그건 같은 것이 아닙니다. 이것을 대신해라 :'Request.Cookies [FormsAuthentication.FormsCookieName]'. –