Asp.Net L2 도메인 이름 공유 Forms 인증, 다운로드/사진 사이트에 대한 액세스 제어
5001 단어 asp.net
일반적으로 작은 파일에 대한 해결 방법은 서버에서 직접 파일을 읽고 출력하는 것이다. 이렇게 하면 파일 주소의 노출을 피할 수 있다. 이것은 해결 방법이다.제가 지금 말씀드리고 싶은 것은TransmitFile 방법을 사용하여 파일을 직접 출력하는 것입니다. 그러나 이 방법이 큰 파일에 대한 지탱력이 얼마나 되는지, 그리고 얼마나 큰 성능 비용을 가져올지 저는 아직 테스트를 해 본 적이 없습니다. 관심 있는 분들은 테스트를 하고 평론을 발표할 수 있습니다.
자, 본론으로 들어가면 일반적으로 다운로드소에 대해 사람들이 생각하는 것이 바로 데이터 문제이기 때문에 자동으로 파일과 프로그램 코드를 분리해서 배치해야 한다고 생각한다.그래서 나는 파일에 단독으로 2급 도메인을 만들었는데, 우리는 file이라고 부른다.xxx.com이지?메인 사이트 도메인 이름은 www.xxx.com이거나 다른 2급 도메인 이름도 좋습니다.
첫 번째 단계는 이 두 사이트 간의 신분 검증 공유를 실현하는 것이다. 예를 들어 메인 사이트에 로그인한 후 자동 지점에서 로그인을 실현하는 것이다.Net의 Forms 인증은 쉽게 이 기능을 실현할 수 있는데, 밑바닥 사고방식은 사실 쿠키를 공유하는 원리이다.두 번째 부분은 파일 사이트에 권한 필터를 하는 것이다.다음은 메인 사이트와 파일 사이트에 웹을 동시에 추가합니다.config.그들에게 같은 설정을 추가해 줘, Web.config 기본 구성 코드는 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<connectionStrings>
</connectionStrings>
<appSettings>
</appSettings>
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Home/LogOn" defaultUrl="/" timeout="600" slidingExpiration="true" name="File" path="/" enableCrossAppRedirects="true"></forms>
</authentication>
<httpCookies domain=".xxx.com"/>
<machineKey validationKey="AAA977D304FB289C182E00C710A099C9F92986DC25AD69F8" decryptionKey="AAA2B3F76A9359431E717CA8275EE72EEEDC70ED55152010" validation="SHA1"/>
</system.web>
<!-- -->
<system.webServer>
<handlers>
<add name="*.*" path="*.*" verb="*" type="Web.Handler.Download" />
</handlers>
</system.webServer>
</configuration>
:
:authentication name ,path="/" cookie ,enableCrossAppRedirects="true" 。
:httpCookie 。
: machinekey 。
, .Net , IHttpHandler , 。 , ProcessRequest , :
namespace Web.Handler
{
/// <summary>
///
/// </summary>
public class Download : IHttpHandler
{
public bool IsReusable
{
get
{
return true;
}
}
public void ProcessRequest(HttpContext context)
{
if (context.User.Identity.IsAuthenticated)
{
string fileName = context.Server.MapPath(context.Request.FilePath);
context.Response.ContentType = Path.GetExtension(fileName);
context.Response.TransmitFile(context.Request.FilePath);
}
else
{
context.Response.Write(" !");
}
}
}
}
, , , :
<add name="*.*" path="*.*" verb="*" type="Web.Handler.Download" />
name , ,path , , *.*, jpg gif, :*.jpg,*.gif ,type Dll , IHttpHandler ,ok, 。
: IIS7, Handler system.webSever ,IIS6 system.web 。
:http://www.cnblogs.com/hyperlinker/archive/2012/02/14/2351193.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
작업 중 문제 해결 - (win 2003 asp. net) Session 과 페이지 전송 방법 으로 해결 방안 을 정상적으로 사용 할 수 없습니다.또한 F 는 처음에 우리 의 BP & IT 프로젝트 팀 이 Forms 폼 검증 을 사용 했다 고 판단 할 수 있 습 니 다. 페이지 를 뛰 어 넘 는 것 은http://hr.bingjun.cc/MyTask/MyTas...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.