過濾器驗證登錄
A. php如何驗證過濾用戶是否登錄
一、php可以通過Session,實現用戶登錄驗證。
session習慣上被譯為會話,它的設計是為了在一個訪問期間在不同的頁面間傳輸數據,以解決http協議無狀態的問題。
session_register()函數的作用是注冊新的變數,它會在全局變數中增加1個變數到目前的session之中,以後其他頁面可以通過session_is_registered()函數檢測該session變數是否已經注冊。
二、通過session來檢測用戶登錄信息,由兩個文件組成,login.php為用戶登錄頁面,checklogin.php用於檢測賬號、密碼和是否登錄成功。
具體參考代碼如下:
login.php的代碼如下:
<?php
session_start();//初始化session
if(isset($_SESSION['shili']))
{
header("Location:shili.php");//重新定向到其他頁面
exit();
}
?>
<scriptlanguage="javascript">
functionchecklogin(){
if((login.username.value!="")&&(login.password.value!=""))
{
returntrue;//判斷用戶名和密碼不為空,返回TRUE
}
else
{
alert("昵稱或密碼不能為空!")
}
}
</script>
<styletype="text/css">
.style1{font-size:13px;font-family:"黑體";font-weight:normal;color:#0099FF;}
</style>
<divalign="center">
<formname="login"method="post"action="checklogin.php"onSubmit="returnchecklogin()">
<tablewidth="260"border="1"bgcolor="#D8EFFA">
<tralign="center">
<tdheight="30"colspan="2"><spanclass="style1">管理系統登錄</span></td>
</tr>
<tr>
<tdwidth="90"align="center"class="style1">管理員:</td>
<tdwidth="170"height="20"align="left"valign="middle"><inputname="username"type="text"id="username"size="20"></td>
</tr>
<tr>
<tdalign="center"class="style1">密碼:</td>
<tdheight="20"align="left"valign="middle"><inputname="password"type="password"id="password"size="20"></td>
</tr>
<tr>
<tdalign="center"class="style1"></td>
<tdheight="20"align="center"><inputtype="submit"name="Submit"value="登錄"></td>
</tr>
</table>
</form>
</div>
checklogin.php的代碼如下:
<?php
session_start();//初始session
if(isset($_SESSION['shili']))
{
header("Location:shili.php");//重新定向到其他頁面
exit;
}//登錄過的話立即結束
$shili_name=$_POST['username'];//獲取參數
$password=$_POST['password'];
//驗證管理員名稱和密碼是否正確,這里採用直接驗證,沒有連接資料庫
if($shili_name=="mr"and$password=="mrsoft")
{
session_register("shili");//注冊新的變數,保存當前會話的昵稱
$shili=$shili_name;
echo"<fontcolor=red>登錄成功!</font>";
header("Location:shili.php");//登錄成功重定向到管理頁面
}
else
{
echo"<tablewidth='100%'align=center><tr><tdalign=center>";
echo"賬號或密碼錯誤,或者不是管理員賬號<br>";
echo"<fontcolor=red>登錄失敗!</font><br><ahref='login.php'>請重新輸入</a>";
echo"</td></tr></table>";
}
?>
shili.php的代碼如下:(實驗簡單驗證)
<?php
echo"WelcometoMyWorld!";
?>
//如果想要對某個頁面限制瀏覽的用戶,可以使用同樣的方式,只要把如下的代碼放在該頁面的開頭即可:
<?php
session_start();
if(!isset($_SESSION['shili'])){
echo"<palign=center>";
echo"<fontcolor=#ff0000size=5><strong><big>";
echo"你沒有登錄,請<ahref='denglu.php'>登錄</a>!";
echo"</big></strong></font></p>";
exit();
}
?>
B. 驗證登錄過濾器類怎麼配置web.xml
可以把的值改為"*",默認全都過濾,然後在過濾器裡面寫一個正則表達式: String str = "[\\w]{1,}\\.jsp$";來判斷是否是jsp頁面,如果是就不執行doFilter()方法,這樣過濾才算靈活,獲取請求的文件名不用我說了吧?相信你會的
C. 過濾器驗證怎麼做
主要分成以下四個方面: 一、過濾器微生物截流研究 遵照法規部門對無菌工藝的要回求,對除菌級液體過濾器進行細菌答截留驗證是非常重要的步驟。驗證的研究應該由實驗中獲得的截留數據構成,這些數據用以判斷除菌級過濾膜對微生物的截留能力。挑戰微生物可以是產品或替代樣品(根據細菌活度研究結果)。 二、過濾器析出物研究 析出物研究是考查過濾器在過濾過程中對料液的影響。 檢測目的是用類似實際料液的溶劑,在最差的條件下模擬檢測過濾器的析出物的成分特徵和含量。 三、過濾器兼容性研究 兼容性研究是考查料液對過濾器的影響。 四、過濾器產品起泡點研究 研究目的是測試產品起泡點比率。三批過濾器,三批產品,分別檢測水潤濕起泡點和產品潤濕起泡點。 摘自密理博中國博客
D. JSP登錄驗證的過濾器問題
過濾器里這樣寫:
HttpServletRequest rq=(HttpServletRequest)request;
HttpServletResponse rp=(HttpServletResponse)response;
String uriStr =rq.getRequestURI();
if (uriStr.indexOf("login.jsp") == -1 && uriStr.indexOf("empservlet")==-1&&uriStr.indexOf("images")==-1&&
rq.getSession().getAttribute("user") == null){
rp.sendRedirect("empservlet");
}else{
filterChain.doFilter(request, response);
}
login.jsp是登陸頁面
images是存放圖片文件夾
empservlet是登陸頁面要轉到的驗證登陸用戶的servlet
user是存放登陸用戶的session
我這也是朋友教的```登陸頁面跟登陸頁面的圖片都不會給過濾掉了``
E. 請問怎麼用asp.net mvc 的過濾器 實現登錄驗證
繼承IAuthorizationFilter,實現OnAuthorization,從參數AuthorizationContext的HttpContext中獲取cookies並判斷是否登陸返回內跳轉Result就行了。
注意,cookies驗證登陸會有安全容風險
F. java添加過濾器驗證登錄後無法跳轉到登錄界面
改成request.getRequestDispatcher("/login.jsp").forward(request, response);
G. jsp的filter中配置驗證登錄的過濾器,但是在登錄的時候過濾器執行了兩次
<a href="#" onclick="window.loginForm.submit();"><img src="skin/images/hua02.jpg" width="78" height="27" border="0" onclick="loginForm.submit();"/></a>
看到沒,你的圖片本身就有個onclick="loginForm.submit();,然後又加了個超鏈接……當然會提交兩次了
H. .net 在非登錄的情況,下使用過濾器驗證跳轉到登錄頁,登錄後怎麼再跳回
那就除非你的登錄做成模態窗口的或者在跳轉到Login時把當前頁面信息用參數傳過去。但是如果當前頁面有較多信息要保存的話,可能就只有模態窗口的方式更簡單一點吧
I. filter驗證登陸,導致死循環
login.jsp是不需要登錄就應該能訪問的,你現在的過濾器所有jsp都需要登陸後才能訪問,包括login.jsp。那麼我還怎麼登錄?
也就是說,當你訪問login.jsp的時候,就要進入過濾器,過濾器拿不到session中的信息,所以,過濾器要跳轉到login.jsp。由於是重定向方式跳轉,所以瀏覽器會再發請求到伺服器,訪問login.jsp,然後還是先通過過濾器進行驗證,以此周而復始,就死循環了。
方法就是在過濾器中,判斷請求地址:
String uri = request.getRequestURI();
if(uri.endsWith("login.jsp"))
{
arg2.doFilter(request,response);
}
else
{
try{
Object o=request.getSession().getAttribute("username");
if(o==null){
response.sendRedirect("login.jsp");
}else if(o.toString().equals("")){
response.sendRedirect("login.jsp");
}else{
response.sendRedirect("success.jsp");
}
}catch(Exception e){
e.printStackTrace();
}
}