좋아, 그래서 오랫동안 그것을 치고 난 후에 내 자신의 질문에 대답 할 수 있었다.
기본적으로 BlogEngine.NET 2.5 (내 웹 앱)는 .NET 4.0 프레임 워크 방식을 재정의하는 것처럼 보입니다. 수정해야 할 몇 가지가 있습니다. 모두 BlogEngine.Core \ Security \ Security.cs (BlogEngine을 다운로드하십시오.NET 소스 코드)
1 부 :
File: BlogEngine.Core\Security\Security.cs
Method: FormsAuthCookieName()
// return FormsAuthentication.FormsCookieName + "-" + Blog.CurrentInstance.Id.ToString();
return FormsAuthentication.FormsCookieName;
이 쿠키 이름이 동일한 지 확인합니다 : 수정 쿠키 이름
에서 다음과 같이 내가 변경하는 방법에 FormsAuthCookieName있다 . 아래 하나 개의 장애물 ...
2 부 : 웹 응용 프로그램 피/BlogEngine.NET의 로그인 페이지/제어/코드 대신 지시 사용자의
합니다 (BlogEngine.Net의 login.aspx에 로그인 www.website .com \ blog \ account \ login.aspx), 나는 을 모두 가리켰다. 로그인은 나의 메인 웹 사이트의 login.aspx 페이지 (www.website.com \ login.aspx)에 대한 링크로 연결된다. 경우에 당신은 당신에게 자신의 사이트 전체 인증을 구현하는 방법을 생각해보고,이 나는 또한 웹 사이트의 web.config 모두 같은 것을 추가 할뿐만 아니라했다 슈퍼 퀵 가이드
msdn.microsoft.com/en-us/library/ff184050.aspx.
입니다 web-app web.config. 보호 된 리소스에 액세스 할 때마다 (웹 사이트 또는 웹 앱에서) 내 자신의 global/login/aspx가 사용됩니다.
<authentication mode="Forms">
<forms timeout="30" loginUrl="/login.aspx" blah blah />
</authentication>
지금, 내 자신의 일반적인, 사이트 전체 사용자 로그인 컨트롤은 (.NET 프레임 워크 표준) 인증 쿠키와 (사용자) 역할 쿠키를 만드는 것입니다. BlogEngine.NET의 login.aspx를 피함으로써 문제가되는이 코드를 호출하는 것을 피할 수 있습니다.
File: BlogEngine.Core\Security\Security.cs
Method: AuthenticateUser(string username, string password, bool rememberMe)
세부 사항 :그 코드를 추가하는 동일한 도메인에 여러 블로그를 가지고, 그래서 만약이 자동으로 인증되는 NOT에서 블로그 인스턴스 1에 인증 된 사용자 1을 방지 할 수 있도록, 쿠키로 "예를 블로그" 블로그 인스턴스 2. 나는 대부분 도메인 (도메인 www.domain.com \ blog!) 당 하나의 블로그를 가질 것 같아요, 이것은 불필요합니다. 더 중요한 것은, 그 수표는 우리의 싱글 사인온을 깨뜨리는 것입니다. 아래
두 장애물 ...
3 부 : 지금 별 접근 권한 검사
수정 사이트 전체, 표준화 된 login.aspx 특정 BlogEngine.NET 인스턴스를 추가하지 않습니다 ID (위 참조). 이것은 특별히 찾고있는 BlogEngine.NET 코드가 여전히 있다는 것을 제외하고는 괜찮 았을 것입니다. 우리는
File: BlogEngine.Core\Security\Security.cs
Method: void Init(HttpApplication context)
// Comment line below to revert to only-framework/default processing
//context.AuthenticateRequest += ContextAuthenticateRequest;
그래서이 시점에서 단일 사이트 전체 login.aspx에 의해 처리
- 모든 로그인을해야한다 ... 그래서 잘못된 체크를 제거 할 수 있습니다, 그 중 하나 체크가 필요하지 않습니다 넓은 위의 사이트 login.aspx
- 암호화 및 웹 사이트 & 웹 응용 프로그램 web.configs 모두의 당 보호 모든 쿠키 만든
- 모든 인증 쿠키 및 사용자 역할 쿠키 (이 일치해야합니다!)
차례로 싱글 사인온을 허용합니다. :) !! 만세!
변경 사항을 구성 할 수없고 관리자가 수락 할 수 없는지 확인하는 것이 좋습니다. 동일한 도메인의 여러 엔진과 단일 사인온 간의 트레이드 오프라고 생각됩니다. 하나 또는 둘 중 하나를 선택해야하지만 사용자가 작동하도록 디버깅 할 필요가 없습니다. – jmoreno