2015-08-27 118 views
0

我有一個服務器上包含某些文件的目錄。我需要保護這些文件,以便在從URL調用文件時,除非用戶名和密碼與請求一起傳遞,否則不會下載。表單身份驗證重定向頁面

目前,我部署的目錄作爲IIS中的應用程序,增加了以下網絡配置:

<?xml version="1.0"?> 
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
    <system.web> 
    <authentication mode="Forms"> 
    <forms loginUrl="logon.aspx" name=".ASPXFORMSAUTH" protection="All" defaultUrl="/" path="?"> 
    </forms> 
    </authentication> 
    <authorization> 
    <deny users="?" /> 
    </authorization> 
    </system.web> 


    <system.webServer> 

     <directoryBrowse enabled="true" /> 

    <httpRedirect enabled="true" destination="/logon.aspx" /> 
</system.webServer> 


</configuration> 

和下面的登錄頁面:

<%@ Page Language="VB" %> 
<%@ Import Namespace="System.Web.Security" %> 

<script runat="server"> 
    Sub Logon_Click(ByVal sender As Object, ByVal e As EventArgs) 
    If ((UserEmail.Text = "[email protected]") And _ 
      (UserPass.Text = "37Yj*99Ps")) Then 
     FormsAuthentication.RedirectFromLoginPage _ 
      (UserEmail.Text, Persist.Checked) 
    Else 
     Msg.Text = "Invalid credentials. Please try again." 
    End If 
    End Sub 
</script> 

<html> 
<head id="Head1" runat="server"> 
    <title>Forms Authentication - Login</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <h3> 
     Logon Page</h3> 
    <table> 
     <tr> 
     <td> 
      E-mail address:</td> 
     <td> 
      <asp:TextBox ID="UserEmail" runat="server" /></td> 
     <td> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator1" 
      ControlToValidate="UserEmail" 
      Display="Dynamic" 
      ErrorMessage="Cannot be empty." 
      runat="server" /> 
     </td> 
     </tr> 
     <tr> 
     <td> 
      Password:</td> 
     <td> 
      <asp:TextBox ID="UserPass" TextMode="Password" 
      runat="server" /> 
     </td> 
     <td> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator2" 
      ControlToValidate="UserPass" 
      ErrorMessage="Cannot be empty." 
      runat="server" /> 
     </td> 
     </tr> 
     <tr> 
     <td> 
      Remember me?</td> 
     <td> 
      <asp:CheckBox ID="Persist" runat="server" /></td> 
     </tr> 
    </table> 
    <asp:Button ID="Submit1" OnClick="Logon_Click" Text="Log On" 
     runat="server" /> 
    <p> 
     <asp:Label ID="Msg" ForeColor="red" runat="server" /> 
    </p> 
    </form> 
</body> 
</html> 

我沒有嘗試尚未通過用戶名和密碼在android應用程序的請求(我最終想做的事情),但我從網絡調用了URL鏈接,並且登錄頁面顯示成功,以防萬一URL是一個目錄,但是當URL指向一個像:MYURL/test/test.txt t當該文件出現並且登錄頁面未顯示時。請任何幫助表示讚賞。我是新來的。

+0

無人回答?!! –

回答

0

我將web配置更改爲以下內容。更改system.webServer

<system.webServer> 
    <modules> 
     <add name="FormsAuthenticationModule" type="System.Web.Security.FormsAuthenticationModule" /> 
     <remove name="UrlAuthorization" /> 
     <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" /> 
     <remove name="DefaultAuthentication" /> 
     <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" /> 
    </modules> 
    </system.webServer> 
相關問題