>백엔드 개발 >C#.Net 튜토리얼 >쿠키를 기반으로 필터를 사용하여 고객 액세스 로그인 기능을 구현하는 방법에 대한 자세한 설명

쿠키를 기반으로 필터를 사용하여 고객 액세스 로그인 기능을 구현하는 방법에 대한 자세한 설명

零下一度
零下一度원래의
2017-06-15 13:52:091631검색

이 글에서는 고객이 방문당 한 번만 로그인할 수 있도록 쿠키를 기반으로 한 필터 사용을 주로 소개합니다. 필요한 친구는 이를 참고할 수 있습니다.

모든 사람들이 로그인할 때 로그인 상자를 보게 될 것이라고 믿습니다. 로그인 상자에 표시되며 다음번에는 로그인할 필요가 없습니다. /1개월 동안 로그인하지 않는 것과 유사한 옵션입니다. 이 문서에서는 메모 모음으로 간주할 수 있는 방법을 여기에 기록합니다. 글에 틀린 부분이 있으면 지적해주시면 됩니다

왜 셀프로그인을 한 번만 하라고 하시나요? 특정 페이지 접속 시 처음에 자동로그인이 실패하고 다음번에 다시 자동로그인 과정을 거치게 되기 때문이죠. 방문을 새로 고치면 무한 루프가 발생합니다.

이 기사의 코드 샘플 프레임워크는 Spring MVC입니다. 다음은 이 기능을 구현하는 데 필요한 지식을 설명합니다. 쿠키 및 필터

1. 쿠키

쿠키란: 쿠키는 사용자 관련 정보를 저장합니다. 웹 애플리케이션 유용한 방법이 제공됩니다. 예를 들어, 사용자가 귀하의 사이트를 방문할 때 쿠키를 사용하여 사용자의 기본 설정이나 기타 정보를 저장하면 다음 번에 사용자가 귀하의 사이트를 방문할 때 애플리케이션이 이전에 저장된 정보를 검색할 수 있습니다.

쿠키 저장 방법과 쿠키 삭제 방법을 살펴보겠습니다

쿠키 저장하기


String newUserName = null;
try {
  newUserName = URLEncoder.encode(username, "UTF-8");//把用户名转码,防止用户名是中文,cookies保存中文取出会乱码
} catch (UnsupportedEncodingException e) {
  e.printStackTrace();
}
Cookie nameCookie = new Cookie("username", newUserName);
String pwdMd5Cook = MD5Util.MD5(Pwd);
Cookie pwdCookie = new Cookie("pwd", pwdMd5Cook);// 保存加密后的密码
nameCookie.setMaxAge(60 * 60 * 24 * 365);// 用户名保存一年
pwdCookie.setMaxAge(60 * 60 * 24 * 30);// 密码保存30天
// 发送Cookie信息到浏览器
response.addCookie(nameCookie);
response.addCookie(pwdCookie);

쿠키 삭제는 매우 간단하지만 쿠키 삭제는 저장과 동일한 제어에 있어야 한다는 점에 유의할 필요가 있습니다. 그렇지 않으면 저장된 쿠키를 찾을 수 없으며 삭제할 수 없습니다.


Cookie cookie = new Cookie("pwd", null);
cookie.setMaxAge(0);// 删除密码cookie
response.addCookie(cookie);

2.Filter - Filter

Filter는 서블릿 기술 중 가장 실용적인 기술입니다. 개발자는 필터 기술을 사용하여 웹 서버에서 관리하는 모든 웹 리소스(예: Jsp, 서블릿, 정적 이미지 파일 또는 정적 HTML 파일 등)를 가로채서 일부 특수 기능을 달성합니다. 예를 들어, URL 수준의 권한 접근 제어, 민감한 어휘 필터링, 응답 정보 압축 등 일부 고급 기능을 구현할 수 있습니다.

구현 방법: Filter 인터페이스를 상속하고 해당 doFilter 메서드를 구현합니다. 작성된 필터 클래스를 웹에 등록합니다. 자동 로그인되는 로고(IsAutomaticLogin), 이 로고는 자동 로그인 중에 저장됩니다(성공 여부에 관계 없음)


3. 위에서 제공한 지식을 바탕으로 전체 코드는 다음과 같습니다. 잘못된 점을 찾으면 모두 환영합니다. 지적해주세요


<filter>指定一个过滤器。
<filter-name>用于为过滤器指定一个名字,该元素的内容不能为空。
<filter-class>元素用于指定过滤器的完整的限定类名。
<init-param>元素用于为过滤器指定初始化参数,它的子元素<param-name>指定参数的名字,<param-value>指定参数的值。
在过滤器中,可以使用FilterConfig接口对象来访问初始化参数。
<filter-mapping>元素用于设置一个 Filter 所负责拦截的资源。一个Filter拦截的资源可通过两种方式来指定:Servlet 名称和资源访问的请求路径
<filter-name>子元素用于设置filter的注册名称。该值必须是在<filter>元素中声明过的过滤器的名字
<url-pattern>设置 filter 所拦截的请求路径(过滤器关联的URL样式)
<servlet-name>指定过滤器所拦截的Servlet名称。
<filter>
  <filter-name>suicaiFilter</filter-name>
  <filter-class>com.suicai.filter.suicaiFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>suicaiFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

위 내용은 쿠키를 기반으로 필터를 사용하여 고객 액세스 로그인 기능을 구현하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.